我正在尝试用这个正则表达式匹配带括号而没有内部空格的单词:/(?<=\{\{).*?(?=}})/g例如:{{ test }} {{test}} {{ test}} {{test }}但是我的正则表达式去掉了我不想要的带有白色的字符串。如[space]test[space][space]testtest[space]我想要的字符串没有白色之前和之后的他们。所有这些都返回“test”。
/(?<=\{\{).*?(?=}})/g
{{ test }} {{test}} {{ test}} {{test }}
[space]test[space]
[space]test
test[space]
k4ymrczo1#
如果你想在所有四个例子中匹配没有空格的单词“test”,你可以使用下面的正则表达式:
(?<={{\s*)(?=\S).*?(?=\s*}})
这里:
(?<={{\s*)
{{
(?=\S)
.*?
(?=\s*}})
}}
演示here。请注意,如果保证您的方括号至少包含一个非空格符号,请改用(?<={{\s*)\S.*?(?=\s*}}),因为它应该具有更好的性能。
(?<={{\s*)\S.*?(?=\s*}})
vjhs03f72#
试试这个:/(?<={)\w+(?=})/g你只需要一个正面的前瞻(?<={)和前瞻(?=})。然后使用\w+确保中间有字符(没有空格):
/(?<={)\w+(?=})/g
(?<={)
(?=})
\w+
2条答案
按热度按时间k4ymrczo1#
如果你想在所有四个例子中匹配没有空格的单词“test”,你可以使用下面的正则表达式:
这里:
(?<={{\s*)
检查匹配前面是否有{{
和任意数量的空格,(?=\S)
检查匹配是否以空格以外的内容开始,.*?
匹配任何符号,最小可能量,(?=\s*}})
检查匹配是否后跟任意数量的空格和}}
。演示here。
请注意,如果保证您的方括号至少包含一个非空格符号,请改用
(?<={{\s*)\S.*?(?=\s*}})
,因为它应该具有更好的性能。vjhs03f72#
试试这个:
/(?<={)\w+(?=})/g
你只需要一个正面的前瞻
(?<={)
和前瞻(?=})
。然后使用\w+
确保中间有字符(没有空格):