这是一个正则表达式,在.NET中评估
我有以下输入:
${guid->newguid()}
我想产生两个匹配的组,一个字符序列,在${
和之后}
,由->
:
我使用的模式如下:
([^(?<=\${)(.*?)(?=})->]+)
但这与括号不匹配,我只得到以下匹配:
如何修改正则表达式,以便获得所需的组?
您正则表达式- ([^(?<=\${)(.*?)(?=})->]+)
-比在否定的字符类中定义的其他匹配1+字符(即,1个或多个字符以外(
,?
,<
等等)。
我建议使用匹配的正则表达式,如下所示:
\${([^}]*?)->([^}]*)}
您需要的结果在match.Groups[1]
和中match.Groups[2]
。
图案细节:
\${
-匹配${
文字字符序列([^}]*?)
-组1捕获0+个字符}
,但尽可能少->
-文字字符序列 ->
([^}]*)
-组2捕获0个以上的字符,而不是}
尽可能多的字符}
-一个字面意思}
。如果您知道里面只有字字符,则可以将正则表达式简化为
\${(\w+)->(\w+\(\))}
请参阅regex演示。但是,它的通用性要差得多。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句