簡體   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