2017-05-31 30 views
-2

我想創建的正則表達式這標誌着所有詞組除了那些在A標籤。 我想用它來替換它的鏈接。 我可以使用一個正則表達式來進行縮放嗎? 這裏是我的失敗試驗:https://regex101.com/r/3I2qvL/1除了在標籤的所有短語 - regexpr

+0

這裏是一個哈克解決方案,它的工作原理:'(?:)\ K |( TEST)'。演示:https://regex101.com/r/3I2qvL/2。確保您丟棄空的比賽:) – degant

+1

@degant擺脫空洞的比賽,你可以使用跳躍和失敗招'/ (* SKIP)(* FAIL)| \ BTEST \ B/i'。參見[試玩](https://regex101.com/r/3I2qvL/3) – HamZa

+0

謝謝@HamZa這是一個巧妙的方法。我無法弄清楚爲什麼在* FAIL之前需要'* SKIP'? – degant

回答

1

要排除首先由標籤匹配包圍的標記部分相匹配,然後用\K把它扔掉。這場比賽也應與空字符串通過交替供給相匹配的子串不開始與標籤:

(?:<a[^>]+>.*?<\/a>\K|)(^|\s|,|;|:|\.)(Test)($|\s|,|;|\.|\b) 

演示:https://regex101.com/r/pUPBQQ/1

+0

非常感謝 – piernik

相關問題