python - 正则表达式:交流发电机订单问题
问题描述
在正则表达式中使用交替时,我们应该在交替器中包含项目,以避免受到引擎急切的影响。
然后,如果有一个列表,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
在交流发电机中匹配并用于断弦?
解决方案
您的问题是您的正则表达式要求字符串中有 a-
或 a \
,因此它强制在inABC CO-OP ELEMENTARY SCHOOL
上拆分。如果你:-
CO-OP
- 使正则表达式的第二部分可选;
.*
将第一组末尾的更改为惰性 (.*?
);和- 添加开始和结束字符串锚点
你会得到你想要的结果:
^(.*(?<!\w)(?:CO-OP|CO|CO\.)(?!\w).*?)(?:[-/](\s*\w+.*))?$
还要注意.
inCO.
应该被转义。
推荐阅读
- sqlite - sqlite3如何选择与另一个列名匹配的列的值
- python - Python Pandas,计算 CSV 中某个项目的所有出现次数,并将该计数分配给该项目的唯一名称
- google-coral - 连接环境传感器板后 Coral 开发板不启动
- afnetworking-3 - 带有查询的 AFNetworking 4.0 GET 请求不起作用
- tinymce - 表格单元格和 TinyMCE 的问题
- excel - 箭头键不会将光标移动到下一个单元格
- python - 如何在 vtk python 中自定义标量
- reactjs - Tailwindcss 使用悬停在 group-hover 上不起作用
- javascript - 在 Javascript 中,我可以使用 While 循环来等待 iframe htm 中的函数加载吗?
- python - 如何计算张量流中不可训练的权重数量?