繁体   English   中英

RegEx.Match未返回预期结果

[英]RegEx.Match not returning expected results

我正在尝试构建一个只匹配下面的string2的正则表达式。

字符串1:(ABC12:CPBI,OTCBB:CPBI)

字符串2:(ABC12:CPBI OTCF CPBI)

以下是我的C#代码

private static Regex rxSymbol = new Regex(@"(?<=:)[&/\w -]+\s*(?=\))", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace ); 

rxSymbol.IsMatch(ticker) 

isMatch语句对string1返回true。 当我尝试使用rxSymbol.Match(ticker)获得完全匹配时,这匹配'CPBI'。

我在使用我的代码之前在RegexHero中测试了这个正则表达式。 它在正则表达式英雄中正常工作。

有人可以帮我弄清楚我的正则表达式有什么问题。

更新:

我意识到问题是什么:只有当第一个:和第一个之间的文本匹配这个模式时,我希望正则表达式返回true:/ [&/ \\ w - ] + \\ s * /

在我的示例字符串(ABC12:CPBI,OTCBB:CPAA)中有两个:正则表达式匹配第二个:和之间的文本

如何修改此正则表达式以强制执行我的要求。

这似乎可以解决问题

(?<=\(\w+:)(\s*\w+)+(?=\))

我指定了第一部分(ABC12:\\(\\w+: .我也用更具体的部分替换了中间部分(\\s*\\w+)+

另请注意,在方括号[ ] ,特殊字符会失去意义。 每个角色都按原样拍摄。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM