繁体   English   中英

积极/消极,向前看/看起来混乱?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM