如何在可选的前缀之后获取字符串?例子:
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
请注意我如何将第一部分放在非捕获组中,并在组之后使其成为可选?
。
(?:\[[^\]]*\]\K)?.+$
你可以试试这个。看演示。
https://regex101.com/r/wX9fR1/14
或者
\[[^\]]*\](*SKIP)(*F)|.+$
见演示。
最简单的方法是使用
[^\[\]]*$
它匹配除括号之外的任意数量的字符,直到字符串的结尾。不过,它也会匹配xxx
in ][]sd[][xxx
,因此如果您需要验证字符串的结构,则此正则表达式不够具体。