在正則表達(dá)式中使用交替時,我們應(yīng)該在交流發(fā)電機中包含項目,以避免受到引擎急切的影響。然后,如果有一個列表,co,co.,co-op,association,assoc我們應(yīng)該更愿意將它們包括在內(nèi)以獲得最精確的匹配。然后,這應(yīng)該改為association,assoc,co-op,co.,co.如果包含連字符或斜線,我有一個基本的正則表達(dá)式模式將單詞一分為二,所以我只得到連字符或斜線之前的部分:(.*(?<!\w)(CO-OP|CO|CO.)(?!\w).*)[-/](\s*\w+.*)但是,此正則表達(dá)式在提供ABC CO-OP ELEMENTARY SCHOOL. 這個字符串正在變成ABC CO. 但是,如果我從交流發(fā)電機中移除 CO,字符串將以正確的原始形式返回ABC CO-OP ELEMENTARY SCHOOL。另外,字符串ARMSTRONG CO-OP ELEMENTARY SCHOOL / ECOLE PRIMAIRE ARMSTRONG COOPERATIVE應(yīng)該被打斷,變成ARMSTRONG CO-OP ELEMENTARY SCHOOL沒有斜線后的字符串。為什么CO在交流發(fā)電機中匹配并用于斷開字符串?
1 回答

阿波羅的戰(zhàn)車
TA貢獻(xiàn)1862條經(jīng)驗 獲得超6個贊
您的問題是您的正則表達(dá)式要求字符串中有 a-
或 a \
,因此它強制在inABC CO-OP ELEMENTARY SCHOOL
上拆分。如果你:-
CO-OP
使正則表達(dá)式的第二部分可選;
.*
將第一組末尾的 改成 lazy ( ).*?
;和添加開始和結(jié)束字符串錨點
你會得到你想要的結(jié)果:
^(.*(?<!\w)(?:CO-OP|CO|CO\.)(?!\w).*?)(?:[-/](\s*\w+.*))?$
還要注意.
inCO.
應(yīng)該被轉(zhuǎn)義。
添加回答
舉報
0/150
提交
取消