-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)) –