无法匹配正则表达式组中的括号

乳腺炎

这是一个正则表达式,在.NET中评估

我有以下输入:

${guid->newguid()}

我想产生两个匹配的组,一个字符序列,在${和之后},由->

  • 吉德
  • newguid()

我使用的模式如下:

([^(?<=\${)(.*?)(?=})->]+)

但这与括号不匹配,我只得到以下匹配:

  • 吉德
  • 纽吉德

如何修改正则表达式,以便获得所需的组?

威克多·斯特里比尤(WiktorStribiżew)

您正则表达式- ([^(?<=\${)(.*?)(?=})->]+)-比在否定的字符类中定义的其他匹配1+字符(即,1个或多个字符以外(?<等等)。

我建议使用匹配的正则表达式,如下所示:

\${([^}]*?)->([^}]*)}

正则表达式演示

您需要的结果在match.Groups[1]和中match.Groups[2]

图案细节

  • \${-匹配${文字字符序列
  • ([^}]*?)-组1捕获0+个字符},但尽可能少
  • -> -文字字符序列 ->
  • ([^}]*)-组2捕获0个以上的字符,而不是}尽可能多的字符
  • }-一个字面意思}

如果您知道里面只有字符,则可以将正则表达式简化为

\${(\w+)->(\w+\(\))}

请参阅regex演示但是,它的通用性要差得多。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式匹配空间不在括号,称赞或方括号中

来自分类Dev

正则表达式匹配JavaScript中的反向组

来自分类Dev

正则表达式在引号中查找组匹配

来自分类Dev

正则表达式匹配括号和大括号

来自分类Dev

正则表达式用于Python中的匹配括号

来自分类Dev

确定正则表达式中匹配的组

来自分类Dev

PHP-正则表达式在其他正则表达式中匹配大括号

来自分类Dev

Python中的正则表达式无法正确匹配

来自分类Dev

无法在Java中匹配正则表达式

来自分类Dev

Vim中的正则表达式以匹配组捕获

来自分类Dev

替换正则表达式匹配中的命名组

来自分类Dev

正则表达式匹配多行括号中的文本

来自分类Dev

正则表达式以匹配括号和JavaScript括号

来自分类Dev

“)”匹配括号的正则表达式

来自分类Dev

正则表达式以匹配括号或括号内的字符串中的数字

来自分类Dev

正则表达式模式无法在python中匹配

来自分类Dev

括号中的正则表达式

来自分类Dev

正则表达式与=匹配的括号

来自分类Dev

Python中的正则表达式无法正确匹配

来自分类Dev

无法在Java中匹配正则表达式

来自分类Dev

正则表达式中的组

来自分类Dev

正则表达式在Java中无法正确匹配

来自分类Dev

在Java正则表达式中匹配多个组

来自分类Dev

正则表达式中的括号

来自分类Dev

无法在C中匹配正则表达式

来自分类Dev

无法让正则表达式在括号 [] 中的项目的匹配中变得贪婪

来自分类Dev

Java中的正则表达式组匹配

来自分类Dev

正则表达式匹配组

来自分类Dev

无法增加在正则表达式匹配的第 1 组中捕获的数字