正则表达式生成条件

2024-10-03 04:28:12 发布

您现在位置:Python中文网/ 问答频道 /正文

刚刚开始学习python和regex。你知道吗

My regex:
\b\d+\s+([A-Za-z]* |[A-Za-z]*\s+[A-Za-z]*)\s+\D+..

使用https://regex101.com/

字符串1:https://i.imgur.com/XNuXftW.jpg(为什么啤酒有空格而胡萝卜/巧克力没有?)你知道吗

string 2https://i.imgur.com/nrl2FPB.jpg(在捕获组中添加更多的\s+[A-Za-z]似乎不再有效,为什么?)你知道吗

字符串3https://i.imgur.com/qH0Z7Hi.jpg(与字符串2问题相同)

我的问题是,我如何继续表述,使之包含上述条件?谢谢

在您需要自己测试的情况下,我提供了如下字符串。你知道吗

=


Tags: 字符串httpscomstringmyregexjpg空格
3条回答

我猜“|”前面的空格是一个原因,它在字符串1中捕获“beer”“巧克力蛋糕”不是作为“beer”出现的,因为它与第二个正则表达式匹配,后者是

[A-Za-z]*\s+[A-Za-z]*

对于字符串2 [A-Za-z]\s+[A-Za-z] 正则表达式正好匹配两个单词

不如试试下面的正则表达式,从trincot修改过来

(?<=\s\s)(\w+\s)+(\w+)(?=\s\s)

试试这个:

\d+\s+([A-Za-z ]*)\b *\D+

参见regex101。你知道吗

您可以使用这个regex,它利用了look behind(?<=)和look ahead(?=),因此它只捕获产品名称:

(?<=\s\s)\w+(?:\s\w+)*(?=\s\s)

请参见regex101.com上的演示。你知道吗

g修饰符一起使用。你知道吗

相关问题 更多 >