如何在可選的前綴之後獲取字符串?示例:忽略表達式中的可選前綴
Expression Result
------------------------
[asdf]xxx => xxx
[foo]bar => bar
[]bla => bla
test => test
[...]
是可選部分。
顯然,我需要一個環視聲明。但我不知道讓它成爲可選項。
如何在可選的前綴之後獲取字符串?示例:忽略表達式中的可選前綴
Expression Result
------------------------
[asdf]xxx => xxx
[foo]bar => bar
[]bla => bla
test => test
[...]
是可選部分。
顯然,我需要一個環視聲明。但我不知道讓它成爲可選項。
這是一個修改@ Maroun的正則表達式使得[...]
可選:
(?:\[.*?\])?(.+)
https://regex101.com/r/hM2sK8/1
注意我是如何把第一部分在非捕獲組和在團隊之後,可以選擇?
。
最簡單的方法是使用
[^\[\]]*$
它匹配除了括號直到字符串的末尾任何數量的字符
。不過,它也會匹配xxx
,][]sd[][xxx
,所以如果你需要驗證字符串的結構,這個正則表達式不夠具體。
我同意。這通過了所有顯示的測試用例,並且不需要(各種支持)查看。 (我也會這樣回答,但是蒂姆把我拉出來了!) – Bohemian 2015-02-09 09:56:39
'\ [。*?\](。*)',第一組是你想要的,實現取決於你的語言 – Maroun 2015-02-09 09:48:13
@MarounMaroun:這不會使''可選...' – 2015-02-09 09:50:11
您正在使用哪種正則表達式引擎? Lookaround並不完全支持大多數引擎。 – 2015-02-09 09:51:08