【发布时间】:2021-11-10 21:12:47
【问题描述】:
我正在尝试使用单个正则表达式匹配字符串中“数字”或“数字”的子字符串。但是,我可以让它们单独匹配,但不能一起匹配。
个人'Number'可以匹配单词number
'Number[(]s[)]' 可以匹配Number(s)。
但是,如果我将它们放在一起并执行 "Number|Number[(]s[)]" 它与 (s) 的 "Number(s)" 不匹配。
我尝试过的:
1:在第二个字符串周围放置\b 边界,不起作用。
2:使用\ 进行转义,但 C# 因无法识别转义序列而对我大喊大叫,所以我选择不使用此选项
我知道我可以使用两个正则表达式来做我想做的事,但我想了解这里有什么问题并学习。
【问题讨论】:
-
使用
@"Number(?:\(s\))?",一个可选组。如果您仍然想要|方式,请将较长的放在第一位,Number[(]s[)]|Number