![](/img/trans.png)
[英]SyntaxError: (irb):4: invalid pattern in look-behind (positive look-behind/ahead)
[英]Positive / Negative and Look Ahead / Look Behind confusion?
s = "some {text|in|braces} found"
获取大括号之间的内容
s.scan(/(?<={).*(?=})/) #=> ["text|in|braces"]
现在,为了得到不在括号中的内容,我试过了
s.scan(/(?<!{).*(?!})/) #=> ["some {text|in|braces} found", ""]
很显然,我遗漏了一些非常重要的东西。
你的第二个正则表达式正在寻找
这当然匹配整个字符串,因为“找到一些{text | in | braces}”前面既没有“{”也没有后面跟着“}”。
不要忘记使用\\“)(?{}”来逃避特殊字符。
您可以通过2个操作解决此问题,首先您可以使用此正则表达式来设置参数:
s = s.gsub(/.*(\{.*\}) # => "text|in|braces"
s.scan(/\w+/) # => ["text", "in", "braces"]
要么
s.gsub(/.*(\{.*\}).scan(/\w+/) # => ["text", "in", "braces"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.