【发布时间】:2019-03-13 08:01:38
【问题描述】:
我有一个匹配多个选项的正则表达式。
例如^0x[\da-fA-F]+|-?\d+$ -- 匹配十进制或十六进制文字的正则表达式
是否有一个选项可以知道哪个选项最终与模式匹配?
所以……
-
-10- 匹配小数选项 -
0x1Af- 十六进制选项匹配
【问题讨论】:
-
您的正则表达式不匹配任何字符串。
-
@WiktorStribiżew:修复了正则表达式.. 现在示例工作
-
但这仍然是错误的,因为每个部分都只固定在一侧。你的意思是使用
^(?:0x[\da-fA-F]+|-?\d+)$。但是,要解决您的问题,请添加捕获组^(?:(0x[\da-fA-F]+)|(-?\d+))$并检查.Success属性是否为 true。 -
@WiktorStribiżew:如果你的陈述更清楚就好了。但无论如何,这不是我的问题——Regex 只是一个例子。
-
顺便说一句,here is an answer 显示如何检查
Group.Success属性。