![](/img/trans.png)
[英]SKIP-FAIL regex with multiple patterns to ignore in one PCRE regex
[英]regex skip embedded patterns
我正在用php過濾一些文本。 我尋找類似的模式:
Mary [qtip:had|past tense of have] little lamb.
我從工具提示“ has的過去時”中提取了錨文本“ had”]
處理的一部分是使用正則表達式/\\[qtip:([^\\|\\\\]]+)\\|?([^\\\\]]*)?\\]/
這很好
我正在嘗試擴展功能。
Mary [qtip:had|past [otherFunction:tense|verb form signalling time] of have] little lamb.
我的思維簡單模式找到了"had"
和"past [otherFunction:tense|verb form indicating time"
我想要一個將跳過嵌入的[]
對的模式。 這些在錨或工具提示中是不允許的。
為什么你逃脫|
並雙重逃脫]
? 為了解決您的問題,只需禁止在模式中打開[
這就要求模式要到達結尾處[ ]
而不遇到任何嵌套的方括號。
preg_match_all('/\[qtip:([^|[\]]+)\|?([^[\]]*)\]/', $input, $matches);
我也刪除了最后一個?
因為如果在應該變為可選的模式上使用*
,則是多余的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.