![](/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.