如何在可选的前缀之后获取字符串?示例:忽略表达式中的可选前缀
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