我从网页中提取了 1 个长字符串。使用:
x=re.findall(r"(?:l'article)\s\d+\w+.*;", xpath)
它提取了以下 2 个字符串:
l'article 1382 du code civil ;
l'article 700 du code de procédure civile, les condamne à payer à la société Financière du cèdre la somme globale de 3 000 euros et rejette leurs demandes ;
不过后一篇有点长。我所需要的只是“,”。有没有办法直接做到这一点?因此,让我原来的正则表达式命令查找“;”或基于它首先遇到的“,”。
如果没有,我可以将正则表达式应用于列表,还是需要为此编写一个循环?
所需结果列表:
l'article 1382 du code civil
l'article 700 du code de procédure civile
注意,我必须将其应用到许多页面,并且一个页面中可能有更多这样的页面。手动或通过明确指示列表中的条目来执行任何操作都是不可能的。
最佳答案
您似乎缺少一些不贪婪的运算符 ?
,以便强制正则表达式在找到第一个匹配项后停止搜索。此外,您可以使用 []
检查多个字符(请参阅以下内容)。新代码如下:
(?:l'article)\s\d+\w+.*?[;,]
正则表达式101:
关于python - 具有两种可能正则表达式的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43589752/