REGEX配方条件

时间:2016-09-28 15:05:20

标签: python regex

刚开始学习python和正则表达式。

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 2 https://i.imgur.com/nrl2FPB.jpg(在捕获组中添加更多的\ s + [A-Za-z]似乎不再起作用了,为什么?)

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

我的问题是我如何继续制定包含上述条件的内容?谢谢

如果您需要自己测试,我提供了如下字符串。

=

3 个答案:

答案 0 :(得分:1)

试试这个:

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

regex101

答案 1 :(得分:1)

您可以使用此正则表达式,它利用了后视(?<=)和前瞻(?=),因此它只捕获产品名称:

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

请参阅regex101.com上的演示。

将其与g修饰符一起使用。

答案 2 :(得分:1)

我猜之前的空间&#34; |&#34;是导致它捕获&#34;啤酒&#34;在 string 1 case &#34;巧克力蛋糕&#34;不会发生&#34;啤酒&#34;因为它与第二个正则表达式相匹配

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

string 2     [A-ZA-Z] \ S + [A-ZA-Z] 正则表达式恰好匹配两个单词

如何尝试下面的正则表达式,从trincot修改

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