簡體   English   中英

捕獲時限制正向超前

[英]Restricting Positive Lookahead when capturing

我有時會從流中獲取一些文本,例如

ICY Info: StreamTitle='Elvis Presley - Saved';StreamUrl='';

ICY Info: StreamTitle='Elvis Presley - Saved'

ICY Info: StreamTitle='Ivank'av T'ali - Yorua';StreamUrl='';

ICY Info: StreamTitle='Ivank'av T'ali - Yorua'

我希望獲得

Elvis Presley - Saved
Elvis Presley - Saved
Ivank'av T'ali - Yorua
Ivank'av T'ali - Yorua

我正在使用(?<=\\=\\').*(?=';S)(?<=\\=\\').*(?=')但它們似乎不合適。

演示

@Edit:我剛帶(?<=\\=\\').*?(?=';)

(?=';S)在第一個和第三個示例中不存在';S不起作用。

另一方面(?=')在第一個和第三個示例中匹配得太多。

您可以做的是在前瞻中使用交替顯示來檢查;:'后跟字符串的末尾。

(?<==').+?(?='(?:;|$))

正則表達式演示

說明

  • (?<==')向后斷言肯定左邊是='
  • .+? 一次或多次匹配任何字符而不貪心
  • (?=正向前進以斷言右邊是
    • '(?:;|$) Match '后跟一個交替匹配; 或斷言字符串$的結尾
  • )正面正向

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM