python - 具有两种可能正则表达式的子字符串

标签 python regex

我从网页中提取了 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:

https://regex101.com/r/tYkNHK/1

关于python - 具有两种可能正则表达式的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43589752/

相关文章:

python - 元胞自动机算法似乎不起作用

javascript - 1 个或多个整数后跟非整数的正则表达式

php - 从地址字符串中提取邮政编码

python - Keras 使用 ImageDataGenerator 将图像数据缩放到 -1 到 1 之间的值

javascript - 地址的正则表达式

c# - 用零填充左边

Java - 正则表达式将第一个和最后一个字符一次性替换为另一个字符

python - python 中的 random.seed 函数如何处理单词?转换成什么数?

python - 如何从 python api 更新/删除 Bigquery 中的行?

python - tf.nn.sigmoid_cross_entropy_with_logits 公司关于文档中的参数