正则表达式 ${something}
regex ${something}
如何使用正则表达式获取 ${} 封闭值中的内容,例如:
Dont care about this. ${This is the thing I want regex to return} Not this either.
应该return:
This is the thing I want regex to return
我试过了\${ }$
我在 regex101.com 上搞砸的最好的
老实说,就正则表达式而言,我不知道自己在做什么
在 c++ 上使用,但也(如果可能)喜欢在 geany 文本编辑器中使用
您想要的是将开头 ${
和结尾 }
与中间任意数量的字符匹配:$\{.*\}
。这里的特殊部分是.*
,.
表示任意字符,*
表示前面的东西可以匹配0次或多次。
由于您想要三个匹配的结果,您可能还想将其包装在 ()
: ($\{.*\})
中。括号让正则表达式记住里面的东西以备后用。
有关如何取回结果的信息,请参阅此 Whosebug:
How to match multiple results using std::regex
我建议${[^}]*}
。注意 $
在正则表达式中有特殊含义,需要用 \
进行转义才能阅读文学作品。
我在大括号之间使用 [^}]*
而不是 .*
以避免进行包含整个值的长匹配:
${Another} match, more then one ${on the same line}
[^}]
除了 }
如何使用正则表达式获取 ${} 封闭值中的内容,例如:
Dont care about this. ${This is the thing I want regex to return} Not this either.
应该return:
This is the thing I want regex to return
我试过了\${ }$ 我在 regex101.com 上搞砸的最好的 老实说,就正则表达式而言,我不知道自己在做什么
在 c++ 上使用,但也(如果可能)喜欢在 geany 文本编辑器中使用
您想要的是将开头 ${
和结尾 }
与中间任意数量的字符匹配:$\{.*\}
。这里的特殊部分是.*
,.
表示任意字符,*
表示前面的东西可以匹配0次或多次。
由于您想要三个匹配的结果,您可能还想将其包装在 ()
: ($\{.*\})
中。括号让正则表达式记住里面的东西以备后用。
有关如何取回结果的信息,请参阅此 Whosebug:
How to match multiple results using std::regex
我建议${[^}]*}
。注意 $
在正则表达式中有特殊含义,需要用 \
进行转义才能阅读文学作品。
我在大括号之间使用 [^}]*
而不是 .*
以避免进行包含整个值的长匹配:
${Another} match, more then one ${on the same line}
[^}]
除了 }