了以下文本行的後續出現:正則表達式:如何捕獲模式可能包含一個子串沒有捕捉同一子串
start - before capture text - tocapture - maybe after capture
我必須可靠地捕獲值「文本 - 一道捕捉」 ,而不會拖動可選的- maybe after capture
部件。
text - tocapture
中的空間虛線空間圖案可能存在也可能不存在。text - tocapture
也可能是一個單詞或有空格。- 如果存在
- maybe after capture
,它將始終以空格連字符開頭,然後是隨機文本。
我需要text - tocapture
完全匹配,無論是否存在- maybe after capture
。
我想出的最好的是:
^start - before capture (.*)(- .*)?$
的問題是,它捕獲後一切「文本 - 一道捕捉」,大概是因爲它也包含「 - 」。我已經嘗試了一些負面的lookahead的東西,但沒有運氣。請參閱下面的Rubular輸出。
'text - tocapture'總是隻包含一個短劃線嗎?如果不是,你會如何區分不同的破折號? –
@Tim,'text - tocapture' _may_包含模式空間 - 破折號空間。 ' - 也許捕捉後'是可選的,但如果存在,將始終以空間破折號空間開始,然後是一些隨機字符串。因此,我的問題是在包含空格破解空間的情況下捕獲「text-tocapture」,並且「可能在捕獲後」。 –
......我開始認爲,如果沒有進一步排除最後一次衝刺,我將無法將它與前面可能存在的衝刺區分開來。 –