regex 匹配正则表达式中的单词括号和内部空格

e0uiprwp  于 2023-06-25  发布在  其他
关注(0)|答案(2)|浏览(101)

我正在尝试用这个正则表达式匹配带括号而没有内部空格的单词:/(?<=\{\{).*?(?=}})/g
例如:{{ test }} {{test}} {{ test}} {{test }}但是我的正则表达式去掉了我不想要的带有白色的字符串。如[space]test[space][space]testtest[space]
我想要的字符串没有白色之前和之后的他们。所有这些都返回“test”。

k4ymrczo

k4ymrczo1#

如果你想在所有四个例子中匹配没有空格的单词“test”,你可以使用下面的正则表达式:

(?<={{\s*)(?=\S).*?(?=\s*}})

这里:

  • (?<={{\s*)检查匹配前面是否有{{和任意数量的空格,
  • (?=\S)检查匹配是否以空格以外的内容开始,
  • .*?匹配任何符号,最小可能量,
  • (?=\s*}})检查匹配是否后跟任意数量的空格和}}

演示here
请注意,如果保证您的方括号至少包含一个非空格符号,请改用(?<={{\s*)\S.*?(?=\s*}}),因为它应该具有更好的性能。

vjhs03f7

vjhs03f72#

试试这个:
/(?<={)\w+(?=})/g
你只需要一个正面的前瞻(?<={)和前瞻(?=})。然后使用\w+确保中间有字符(没有空格):

相关问题