1
A
回答
6
要只匹配foo
和bar
周围无支撑,则可以使用
(?<=(?<!\{)\{)[^{}]*(?=\}(?!\}))
如果你的语言支持后向断言。
说明:
(?<= # Assert that the following can be matched before the current position
(?<!\{) # (only if the preceding character isn't a {)
\{ # a {
) # End of lookbehind
[^{}]* # Match any number of characters except braces
(?= # Assert that it's possible to match...
\} # a }
(?!\}) # (only if there is not another } that follows)
) # End of lookahead
编辑:在JavaScript中,你不必回顾后。在这种情况下,您需要使用如下所示的内容:
var myregexp = /(?:^|[^{])\{([^{}]*)(?=\}(?!\}))/g;
var match = myregexp.exec(subject);
while (match != null) {
for (var i = 0; i < match.length; i++) {
// matched text: match[1]
}
match = myregexp.exec(subject);
}
3
在许多语言中,你可以使用环视断言:
(?<!\{)\{([^}]+)\}(?!\})
说明:
(?<!\{)
:前一个字符是不是{
\{([^}]+)\}
:一些大括号,例如内{foo}
(?!\})
:以下文字是不是}
+0
添加'\ s'来排除花括号内的空格:'(?<!\ {} \ {([!\ s}] +)\}(?!\})' –
相关问题
- 1. 正则表达式支架
- 2. 匹配什么是正则表达式beetwen支架(和只)
- 3. 角度支架的不匹配XML正则表达式
- 4. Python的正则表达式匹配每个支架元素
- 5. 支架内的正则表达式匹配的正则表达式的报价
- 6. 匹配在Perl的正则表达式第一端支架
- 7. 使用正则表达式匹配之外Cypher支架中
- 8. 支架正则表达式的Javascript
- 9. 卷曲支架的正则表达式
- 10. 解析器支架正则表达式
- 11. JavaScript的正则表达式支架
- 12. 正则表达式 - 可选支架
- 13. PHP正则表达式匹配或者或不使用支架一个字?
- 14. 正则表达式匹配单词末尾,而不是一个“#”
- 15. 正则表达式 - 排除支架和支架用专用钥匙
- 16. 正则表达式支架和支架旁边的海誓山盟
- 17. 交换/匹配“左”与“右”的支架块内的正则表达式
- 18. 匹配值的(最后),其中附有支架 - 正则表达式
- 19. 检查C++ 11对“正则表达式”的支持:不支持
- 20. 正则表达式:得到的是我使用PHP支架
- 21. 正则表达式来替换支架内部的东西,除了支架内部的其他支架
- 22. 获取里面四个支架(正则表达式)字符串
- 23. 需要帮助的正则表达式,两个支架
- 24. 正则表达式匹配最短匹配而不是最长
- 25. Ruby - 匹配对的正则表达式
- 26. 正则表达式匹配相对URL
- 27. 匹配正则表达式的对立
- 28. 正则表达式匹配双引号
- 29. 双正则表达式匹配列[R
- 30. 正则表达式匹配一个而不是另一个
您使用哪种语言? –
对不起,应该说。 JavaScript的。 – stovroz
@stovroz:无赖。那么你没有看后面的断言。 –