Regex 正则表达式以匹配把手表达式和默认值
我松散地遵循一个手柄模式来替换字符串中Regex 正则表达式以匹配把手表达式和默认值,regex,Regex,我松散地遵循一个手柄模式来替换字符串中{{copy}表达式的实例 以下是我试图匹配的字符串/场景的一些示例: {{copy}} 一些文本,然后{{copy}},然后是一些其他文本 some{{copy'default value here'}}here 本质上,{{copy}可以出现在字符串中的任何位置,还可以包含一个默认值,我还需要使用正则表达式将其提取出来 我尝试了以下我认为会匹配的方法,但是我没有运气 \b{{copy*}}\b 您可以使用此正则表达式: /{{(copy)\
{{copy}
表达式的实例
以下是我试图匹配的字符串/场景的一些示例:
{{copy}}
一些文本,然后{{copy}},然后是一些其他文本
some{{copy'default value here'}}here
{{copy}
可以出现在字符串中的任何位置,还可以包含一个默认值,我还需要使用正则表达式将其提取出来
我尝试了以下我认为会匹配的方法,但是我没有运气
\b{{copy*}}\b
您可以使用此正则表达式:
/{{(copy)\b(?: +'([^']*)')?}}/
说明:
-预期把手启动{{
-捕获文本(复制)
(替换为copy
以支持可变关键字)[a-z]+
-需要一个单词边界\b
…(?:
-非捕获组,尾部的)?
使其成为可选组?
-期望1+个空格,一个引号,在下一个引号之前捕获所有内容,期望引号+'([^']*)”
-除了把手端}
- 现在,您可以使用
和$1
或$2
和\1
或数组引用捕获组,具体取决于正则表达式引擎/语言结构\2
{{copy\s*([^}]*)}
看。详情:
-文字文本{{copy
-零个或多个空格\s*
-捕获组1:除([^}]*)
}
-一个}
字符串}
{{
和}
前面/后面不需要单词字符,则不要使用单词边界。只需使用{copy[^}]*}
注意copy*
匹配cop
或copy
以及copyyyyyy
您还可以使用{copy\b.*}
{code>{(copy\b)(.?}}}}分别将内容放入捕获组1和2。克雷格,你的意图是什么?请澄清,或者让我知道什么对你有效。@WiktorStribiżew-你的建议非常有效,谢谢。