2015-11-30 71 views
0

我一直在試圖找到一個PCRE正則表達式查找包含www.aliexpress.com在各個環節:PCRE正則表達式來查找包含崇高域的href?

<a href="http://www.aliexpress.com/af/category/200118006.html?spm=2114.030010108.0.774.bcoKC8&amp;isAffiliate=y&amp;g=y">Parkas</a> 

我只想讓選定的整個HREF或在雙引號的鏈接,以取代與#但我想讓它與崇高一起工作,所以任何方式做到這一點很高興知道!

我試過,但我只能夠搜索整個<a href="" > </a>爲:

<\s*a[^>]*>(.*?)<\s*/\s*a> 
+0

嘗試['(其他<= \ bhref = 「)([^」] * www.aliexpress.com [^「] *)'](https://regex101.com/r/sV4nW7/1)。 –

+0

@stribizhev它的作品,但另一個問題..我的一些鏈接是這樣的'href =「www.aliexpress.com」'所以正則表達式不認識他們..!就像'href =「link」' –

+0

FYI之間有空格一樣,Sublime Text使用Boost而不是PCRE。 –

回答

2

由於Sublime Text uses the Perl Compatible Regular Expressions (PCRE) engine from the Boost library你可以使用\K操作根據目前爲止的模式省略所有匹配的文本以「模擬」可變寬度後視。

匹配所有href鏈路與www.aliexpress.com,使用

\bhref=\s*"\K[^"]*www\.aliexpress\.com[^"]* 

Demo 1。與可選/categorywww.aliexpress.com

上一頁類型鏈接可以與

\bhref=\s*"\K[^"]*www\.aliexpress\.com(?:/category\b)?[^"]* 

匹配參見Demo 2

enter image description here

正則表達式崩潰:

  • \bhref=\s*"\K - 由0或多個空格符號匹配,隨後整個單詞href和雙引號和省略他們都
  • [^"]* - 比賽0或以上字符"
  • www\.aliexpress\.com - 匹配www.aliexpress.com字面上
  • (?:/category\b)? - 匹配/category子或沒有(如?裝置匹配1或0的出現
  • [^"]* - ?匹配0個或多個字符比"
+0

如果您需要更多說明,請不要猶豫在此處發表評論。 –

+0

謝謝您清除所有內容..我可以不要問更多...但我會如果我需要任何東西..!無論如何,我可以接觸到你..? –

+0

問SO正則表達式的問題 - 我經常上網。 –

1

這應該工作:

(?<=\bhref=)\s*"([^"]*www.aliexpress.com[^"]*) 

demo

+0

它只與那些只有一個字符空間的人不匹配那些有多個空格的人。 –

+0

@UmarShah看到我的編輯和新鏈接 – MattDMo

+0

謝謝..它現在的作品..! –

相關問題