我在繞過正則表達式時遇到問題。排除正則表達式中的某個雙字符
到目前爲止,我的模式是這樣的(Python的放牧,味正則表達式)
(?P<text>
[a-zA-Z0-9]+ # can start with "core char"
[a-zA-Z0-9\ \-]* # can have a "core char" or space|dash within it
[a-zA-Z0-9]+ # must end with a "core character"
)
我想內,使得中段改變這一點,我不匹配上有重複的空間或破折號。文本中有多個空格/破折號是可以接受的。
好:
hello world
hello-world
h-ll-w-rld
不好:
-hello-world
hello--world
h-ll--w-rld
hello world
一個簡單的方法可能是剛添加第二個正則表達式來重新測試通過第一個正則表達式的字符串的雙倍空間/短劃線。它不是非常高效,但寫起來簡單快捷。 –
難道你不能只是從中間部分刪除'*',是hello-wo-rld可以接受嗎? –
@ Dgrin91建議的速度損失可能會很小,同時讓您的代碼更具可讀性,模塊化且易於維護。 – ajp15243