python re找到不同模式的不同词

发布于 2025-01-19 13:33:24 字数 620 浏览 1 评论 0 原文

我对此活动有问题,我想搜索单词s/abs,c/abs,s/servo,c/servo,s/ess,c/ess,s/s/válvula,c/válvula,这将是如果它也匹配S/C+以前的所有单词,那么它很棒。

在这里,有一个我用来进行尝试的示例:

a = "12222/133-164 s/ABS s/abs s/A s/a puerta s/ESP s/servo s/a 4/5,hola s/s / r,147 / Spazio / Vivace, Tiida 1.8 - Visia/Acenta s/B, c/válvula"

regex = re.compile( r" /+ABS\b|servo\b|ESP\b|válvula\b ", flags=re.I | re.X)

print(regex.findall(a)) 

但是我的输出

['/ABS', '/abs', 'ESP', 'servo', 'válvula']

必须是:

['s/ABS', 's/abs', 's/ESP', 's/servo', 'c/válvula']

I'm having a problem with this activity, I want search the words s/ABS, c/ABS, s/servo, c/servo, s/ESP, c/ESP, s/válvula, c/válvula and it would be great if it also matches s/c+ all of the previous words.

Here, there is an example that I have used to make my tries:

a = "12222/133-164 s/ABS s/abs s/A s/a puerta s/ESP s/servo s/a 4/5,hola s/s / r,147 / Spazio / Vivace, Tiida 1.8 - Visia/Acenta s/B, c/válvula"

regex = re.compile( r" /+ABS\b|servo\b|ESP\b|válvula\b ", flags=re.I | re.X)

print(regex.findall(a)) 

But my output is

['/ABS', '/abs', 'ESP', 'servo', 'válvula']

It has to be:

['s/ABS', 's/abs', 's/ESP', 's/servo', 'c/válvula']

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

葬花如无物 2025-01-26 13:33:24

要匹配所有“s/c+ 前面的所有单词”,您可以使用字符类 [sc] (但也可以匹配 c/ABS

\b[sc]/(?:ABS|servo|ESP|válvula)\b

正则表达式演示

或更准确地说:

\b(?:s/(?:ABS|servo|ESP)|c/válvula)\b

正则表达式演示

import re

a = "12222/133-164 s/ABS s/abs s/A s/a puerta s/ESP s/servo s/a 4/5,hola s/s / r,147 / Spazio / Vivace, Tiida 1.8 - Visia/Acenta s/B, c/válvula"
regex = re.compile(r"\b(?:s/(?:ABS|servo|ESP)|c/válvula)\b", flags=re.I)

print(regex.findall(a))

输出

['s/ABS', 's/abs', 's/ESP', 's/servo', 'c/válvula']

To match all "s/c+ all of the previous words" you can either use a character class [sc] (but that can also match c/ABS

\b[sc]/(?:ABS|servo|ESP|válvula)\b

Regex demo

Or more precise:

\b(?:s/(?:ABS|servo|ESP)|c/válvula)\b

Regex demo

import re

a = "12222/133-164 s/ABS s/abs s/A s/a puerta s/ESP s/servo s/a 4/5,hola s/s / r,147 / Spazio / Vivace, Tiida 1.8 - Visia/Acenta s/B, c/válvula"
regex = re.compile(r"\b(?:s/(?:ABS|servo|ESP)|c/válvula)\b", flags=re.I)

print(regex.findall(a))

Output

['s/ABS', 's/abs', 's/ESP', 's/servo', 'c/válvula']
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文