Regex 如何匹配大括号中的单词?
我想用sublime替换一些文本。我有一些文字Regex 如何匹配大括号中的单词?,regex,sublimetext,Regex,Sublimetext,我想用sublime替换一些文本。我有一些文字 {{abcd dog cat}} 我想让他们成为 {abcd dog cat} 我不能直接将{{替换为{,因为在我的文本中有些{{是必要的 我知道使用正则表达式可以达到我的目的,但我不知道如何使用它 现在我使用{$1}来替换 \{{\w+}\},但它不起作用。使用\w将不匹配空格。您可以使用例如。+?匹配{和}}之间的内容,并将捕获组放置在第一个大括号和第二个大括号之间 在替换中使用$1 如果只想在单词之间使用单个空格匹配单词字符,可以使用ma
{{abcd dog cat}}
我想让他们成为
{abcd dog cat}
我不能直接将{{替换为{,因为在我的文本中有些{{是必要的
我知道使用正则表达式可以达到我的目的,但我不知道如何使用它
现在我使用{$1}来替换
\{{\w+}\},但它不起作用。使用\w将不匹配空格。您可以使用例如。+?匹配{和}}之间的内容,并将捕获组放置在第一个大括号和第二个大括号之间
在替换中使用$1
如果只想在单词之间使用单个空格匹配单词字符,可以使用match 1+单词字符并重复0次或更多次1+单词字符前面加空格:
{({\w+(?: \w+)*})}
使用\w将不匹配空格。您可以使用例如.+?匹配{和}之间的内容,并将捕获组放置在第一个和第二个大括号之间
在替换中使用$1
如果只想在单词之间使用单个空格匹配单词字符,可以使用match 1+单词字符并重复0次或更多次1+单词字符前面加空格:
{({\w+(?: \w+)*})}
除了@WiktorStribiżew comment之外,用[^{}]+替换\w+,这是因为\w是[a-zA-Z0-9ż]的缩写,这不包括空格。在您的示例中,有空格。如果您只想用两个大括号和右大括号替换这些空格,并且单词在其中,您可以通过lookarounds进一步包围新表达式,并在两侧添加单词边界,如下所示:并用$1Replace\w+替换为[^{}]+除了@WiktorStribiżew注释外,这是因为\w是[a-zA-Z0-9ż]的缩写,这不包括空格。在您的示例中,有空格。如果您只想将这些空格替换为两个大括号,并将单词放在其中,则可以通过lookarounds进一步包围新表达式,并在两侧添加单词边界,如下所示:并替换为$1