正则表达式,忽略字符串中可能出现的匹配

时间:2016-10-14 21:09:49

标签: regex swift string

比如说我有测试字符串:

this is text "This is a quote { containing } some characters" blah blah { inside }

我想使用表达式

匹配每对花括号和中间的文本

\{[^{]*?\}

但忽略字符串内可能出现的任何匹配,即字符串的{ containing }部分,或者甚至只能匹配以下测试字符串的{ text }

more text "text text { { { } " { text } words

1 个答案:

答案 0 :(得分:1)

这很有效:

{[^}]*}(?=(?:[^"]*"[^"]*"[^"]*)*$)

但我不确定它的防弹性能。您可以查看online

  • {[^}]*}获取卷曲内容
  • (?=(?:[^"]*"[^"]*"[^"]*)*$)确保其后跟偶数"

注意:此正则表达式未考虑转义的双引号。