Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何匹配大括号中的单词?_Regex_Sublimetext - Fatal编程技术网

Regex 如何匹配大括号中的单词?

Regex 如何匹配大括号中的单词?,regex,sublimetext,Regex,Sublimetext,我想用sublime替换一些文本。我有一些文字 {{abcd dog cat}} 我想让他们成为 {abcd dog cat} 我不能直接将{{替换为{,因为在我的文本中有些{{是必要的 我知道使用正则表达式可以达到我的目的,但我不知道如何使用它 现在我使用{$1}来替换 \{{\w+}\},但它不起作用。使用\w将不匹配空格。您可以使用例如。+?匹配{和}}之间的内容,并将捕获组放置在第一个大括号和第二个大括号之间 在替换中使用$1 如果只想在单词之间使用单个空格匹配单词字符,可以使用ma

我想用sublime替换一些文本。我有一些文字

{{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