为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式:交流发电机订单问题

正则表达式:交流发电机订单问题

猛跑小猪 2022-12-06 14:55:27
在正则表达式中使用交替时,我们应该在交流发电机中包含项目,以避免受到引擎急切的影响。然后,如果有一个列表,co,co.,co-op,association,assoc我们应该更愿意将它们包括在内以获得最精确的匹配。然后,这应该改为association,assoc,co-op,co.,co.如果包含连字符或斜线,我有一个基本的正则表达式模式将单词一分为二,所以我只得到连字符或斜线之前的部分:(.*(?<!\w)(CO-OP|CO|CO.)(?!\w).*)[-/](\s*\w+.*)但是,此正则表达式在提供ABC CO-OP ELEMENTARY SCHOOL. 这个字符串正在变成ABC CO. 但是,如果我从交流发电机中移除 CO,字符串将以正确的原始形式返回ABC CO-OP ELEMENTARY SCHOOL。另外,字符串ARMSTRONG CO-OP ELEMENTARY SCHOOL / ECOLE PRIMAIRE ARMSTRONG COOPERATIVE应该被打断,变成ARMSTRONG CO-OP ELEMENTARY SCHOOL没有斜线后的字符串。为什么CO在交流发电机中匹配并用于断开字符串?
查看完整描述

1 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

您的问题是您的正则表达式要求字符串中有 a-或 a \,因此它强制在inABC CO-OP ELEMENTARY SCHOOL上拆分。如果你:-CO-OP

  1. 使正则表达式的第二部分可选;

  2. .*将第一组末尾的 改成 lazy ( ) .*?;和

  3. 添加开始和结束字符串锚点

你会得到你想要的结果:

^(.*(?<!\w)(?:CO-OP|CO|CO\.)(?!\w).*?)(?:[-/](\s*\w+.*))?$

regex101 上的演示

还要注意.inCO.应该被转义。


查看完整回答
反对 回复 2022-12-06
  • 1 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信