-1
我試圖捕獲多個組忽略情況,並且暫時沒有任何進展。 我正在檢查該字符串可以有多種形式,一些例如python正則表達式多個可選捕獲組
<A title="Test title Ch.42" href="http://www.google.com">Test title Ch.42 </a>
<A title="Test title Vol2. Ch.42" href="http://www.google.com">Test title Vol2. Ch.42 </a>
<A title="Test title Vol2.Ch.42" href="http://www.google.com">Test title Vol2.Ch.42 </a>
<A title="Test title \"with multiple quotes\" Ch.42" href="http://www.google.com">Test title "with multiple quotes" Ch.42 </a>
<A title="Test title w1th numb3rs Ch.42" href="http://www.google.com">Test title w1th numb3rs Ch.42 </a>
<A title="Test title no 42" href="http://www.google.com">Test title no 42 </a>
所以一般的規則是這樣的:
在標題標籤的主標題可以包含每一個字符包括數字和特殊字符
的URL是一個標準的URL,而可以是與(。*)表達捕獲毫無問題
The Ch。通常是可選的
如果字符串包含Vol。,Ch。獲得強制性
我現在的正則表達式如下:
pattern = re.compile('<A title="((.*)(?:Vol.[\d]+){0,1}(?: Ch.){0,1}([\d]+))" href="(.*)">')
我想嘗試和捕捉:
與卷和章節,包括其背後的號碼標題標籤
沒有Vol和Ch的標題(沒有Vol和C後面的數字) h)
Ch。
它會更好分裂正則表達式,這將是爲更好的性能(它運行在幾千字符串,所以我想保持它的高性能)?
親切的問候Baumchen
非常感謝完美的工作,你會推薦什麼樣的工具對於這種情況? – Baumchen
@Baumchen我很高興它有幫助。我沒有Python背景,但我認爲任何html解析器都可以處理它,在leas partialy(也許[this one])(https://docs.python.org/2/library/htmlparser.html)) –