我试图以“$ {234}”的形式匹配字符串,但是在右侧没有“=”字符的字符串。
例如:
v1 = 345 + ${234};
这里$ {234}应匹配。我可以用\ $ {([0-9] +)}
来做到这一点但以下内容不应匹配:
${234} = 345 + v5;
因为“$ {234}”序列右侧有一个“=”。
我知道有一些表达式可以匹配“以...结尾的序列”。但是如你所见,这里有点不同。
是否可以将上述序列与regexp匹配?
答案 0 :(得分:2)
您可以使用否定前瞻(?!...)
:
\${([0-9]+)}(?!.*=)
只有在<{1}}之后 =
某个点时才会匹配。
答案 1 :(得分:0)
您可以使用
(?:(\$\{\d\d\d\}) ?[^=])
这基本上是文字$
,后跟文字{
,后跟3 digits
,后跟文字}
,后跟可选空格,不,后跟=。
f.e。:只会将$ {234}作为群组捕获。