[英]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.