s = "some {text|in|braces} found"
获取大括号之间的内容
s.scan(/(?<={).*(?=})/) #=> ["text|in|braces"]
现在我想获取括号外的内容,我尝试了
s.scan(/(?<!{).*(?!})/) #=> ["some {text|in|braces} found", ""]
显然,我错过了非常重要的东西。
不要忘记使用 \ ")(?{}" 转义特殊字符。
您可以通过两个操作来解决此问题,首先可以使用以下正则表达式隔离参数:
s = s.gsub(/.*(\{.*\}) # => "text|in|braces"
s.scan(/\w+/) # => ["text", "in", "braces"]
或者
s.gsub(/.*(\{.*\}).scan(/\w+/) # => ["text", "in", "braces"]