Python Regex:交流发电机订单问题
当在正则表达式中使用时,我们应该在交流发电机中包含项目,以避免受到引擎急切性的影响 然后,如果有一个列表,例如Python Regex:交流发电机订单问题,python,regex,regex-alternation,Python,Regex,Regex Alternation,当在正则表达式中使用时,我们应该在交流发电机中包含项目,以避免受到引擎急切性的影响 然后,如果有一个列表,例如co,co.,co-op,association,assoc,我们应该更愿意包含它们,以便获得最精确的匹配。然后,应将其更改为协会、协会、合作社、公司 如果包含连字符或斜杠,我有一个基本的正则表达式模式可以将一个单词一分为二,因此我只得到连字符或斜杠之前的部分: (.*(?<!\w)(CO-OP|CO|CO.)(?!\w).*)[-/](\s*\w+.*) (.*? 但是,当提供
co,co.,co-op,association,assoc
,我们应该更愿意包含它们,以便获得最精确的匹配。然后,应将其更改为协会、协会、合作社、公司
如果包含连字符或斜杠,我有一个基本的正则表达式模式可以将一个单词一分为二,因此我只得到连字符或斜杠之前的部分:
(.*(?<!\w)(CO-OP|CO|CO.)(?!\w).*)[-/](\s*\w+.*)
(.*?
但是,当提供ABC CO-OP小学
时,此正则表达式错误地中断。此字符串正变成ABC CO
。但是,如果我从交流发电机中删除CO,字符串将以其原始形式ABC CO-OP小学
返回,这是正确的。此外,字符串ARMSTRONG CO-OP小学/ECOLE Primarire ARMSTRONG COOPERATIVE
应在斜杠后不带字符串的情况下被拆分为ARMSTRONG CO-OP小学
为什么CO
在交流发电机中匹配并用于断开字符串?您的问题是您的正则表达式要求字符串中有-
或\
,因此它迫使ABC CO-OP小学
在CO-OP
中的-
上拆分。如果您:
使regex的第二部分成为可选的
将第一组末尾的*
更改为惰性(*?
);以及
添加字符串起始和结束锚定
您将获得您想要的结果:
^(.*(?<!\w)(?:CO-OP|CO|CO\.)(?!\w).*?)(?:[-/](\s*\w+.*))?$
^(.*?
另外请注意,应该转义CO.
中的
。您的问题是您的正则表达式要求字符串中有-
或\
,因此它强制ABC合作小学
在CO-OP
中的-
上拆分。如果您:
使regex的第二部分成为可选的
将第一组末尾的*
更改为惰性(*?
);以及
添加字符串起始和结束锚定
您将获得您想要的结果:
^(.*(?<!\w)(?:CO-OP|CO|CO\.)(?!\w).*?)(?:[-/](\s*\w+.*))?$
^(.*?
还请注意,CO.
中的
应该转义。CO.
应该是CO[.]
或CO\.
但这不是您当前的问题。您可以使用控制动词跳过CO,CO,CO
匹配。CO.
应该是CO[.]
或CO\.
但这不是您当前的问题。您可以使用控制动词跳过CO,CO,CO-op
匹配项。