加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何使用RegEx选择最长匹配?

发布时间:2020-12-15 08:45:16 所属栏目:百科 来源:网络整理
导读:我试着寻找这个问题的答案,但却找不到任何东西,我希望有一个简单的解决方案.我在C#中使用以下代码, String pattern = ("(hello|hello world)");Regex regex = new Regex(pattern,RegexOptions.IgnoreCase);var matches = regex.Matches("hello world"); 问题
我试着寻找这个问题的答案,但却找不到任何东西,我希望有一个简单的解决方案.我在C#中使用以下代码,
String pattern = ("(hello|hello world)");
Regex regex = new Regex(pattern,RegexOptions.IgnoreCase);
var matches = regex.Matches("hello world");

问题是,匹配方法有没有办法首先返回最长的模式?在这种情况下,我想把“你好世界”作为我的比赛而不是“你好”.这只是一个例子,但我的模式列表中包含了大量的单词.

解决方法

如果你事先已经知道了单词的长度,那么先把它放在最长的位置.例如:
String pattern = ("(hello world|hello)");

最长的将首先匹配.如果您事先不知道长度,则无法做到这一点.

另一种方法是将所有匹配存储在数组/散列/列表中,并使用语言的内置函数手动选择最长的匹配.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读