我已經在這裏提出了一些與正則表達式相關的問題,並且從答案中學到了很多東西,但是偶爾會碰到一些讓我困惑的東西。這是其中的一次!正則表達式將字符串與選項stubstrings拆分爲三個
我有一個字符串的負載(所有這些都是單行),我想分成三部分。但是,一些零件是可選的。
爲了簡化這個例子,我將使用人名。讓我們假設我有以下的名稱
Mr Homer Simpson
Mrs Marge Simpson Esq
Mr Homer Simpson Junior Esq
Bart Simpson
Lisa Simpson Esq
Maggie Simpson Junior Esq
使用替換功能,我會想這些分成前綴名和後綴。通過上面的列表中,我希望看到
"Mr" "Homer Simpson" ""
"Mrs" "Marge Simpson" "Esq"
"Mr" "Homer Simpson" "Junior Esq"
"" "Bart Simpson" ""
"" "Lisa Simpson" "Esq"
"" "Maggie Simpson" "Junior Esq"
我能得到的最接近的是下面的,這顯然是遙遠
((先生|夫人)\ S)?(。*?) ((Senior | Junior)?(?:\ sEsq)?)
任何人都可以協助嗎?
感謝
你知道,我可能在這裏回答了我自己的問題。以下是否正確? ^(先生(?:s)* \ s)?(。*?)(Junior(\ sEsq)?| Senior(\ sEsq)?| Esq | $) – Typhoon101