ケースを無視して複数のグループをキャプチャしようとしましたが、しばらく進行しません。私がチェックしている文字列には複数の形式があります。たとえば、いくつかの形式があります
<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 ですが、(.*) 式で問題なくキャプチャできます
Ch。一般的にはオプションです
文字列に Vol. が含まれている場合、Ch. 必須になる
私の現在の正規表現は次のようになります。
pattern = re.compile('<A title="((.*)(?:Vol.[\d]+){0,1}(?: Ch.){0,1}([\d]+))" href="(.*)">')
試してキャプチャしたい:
後ろの数字を含む Vol と Ch のタイトルタグ
Vol と Ch のないタイトル (および Vol と Ch の後ろの数字なし)
Chの後ろの数字。
正規表現を分割した方が良いでしょうか、パフォーマンスのために何が良いでしょうか (数千の文字列を実行しているので、パフォーマンスを維持したいと思います)?
よろしくバウムチェン