【发布时间】:2022-12-19 19:38:05
【问题描述】:
我有一个正则表达式,有很多部分。 例子:
var match = Regex.match("可变字符串","(变量|变量|字符串变量|strink|变量字符串|varstrings)");
我的真实例子有很多,有很多细微的差别。
我需要一种方法来知道我的正则表达式的哪一部分受到了影响。 就像在这种情况下 = "(variable|variables|string variable|string|可变字符串|可变字符串)” 我希望正则表达式或代码的差异部分告诉我 |variablestring|是受到打击的正则表达式的一部分。 我不太关心输出本身,我想知道 REGEX 的哪一部分是我得到匹配的原因 有办法吗?
我研究了不同的方法,并寻找了一些方法或属性,但我还没有找到任何可以帮助我的具体方法,有人有什么想法吗?
【问题讨论】:
-
这个问题已经在这个网站上被问过很多次,但基本上你想做的是把较长的术语放在交替的第一位,即使用:
(variablestring|variables|variable|stringvariable|string|varstrings) -
不,那不是我想要的,我想要得到在我的字符串上命中的特定正则表达式部分
-
请edit您的帖子提供一个具体示例,包括输入、模式和预期输出。包括您的尝试也会有所帮助。
-
'one' -match '(?:(?<matched_one>one)|(?<matched_two>two))' -
有意思,这是什么?