忽略表达式中的可选前缀
Ignore an optional prefix in expression
如何获取可选前缀后的字符串?示例:
Expression Result
------------------------
[asdf]xxx => xxx
[foo]bar => bar
[]bla => bla
test => test
[...]
为选填部分
显然,我需要一个环视断言。但我不知道把它设为可选。
(?:\[[^\]]*\]\K)?.+$
您可以尝试 this.See 演示。
https://regex101.com/r/wX9fR1/14
或
\[[^\]]*\](*SKIP)(*F)|.+$
查看演示。
这是对@Maroun 的正则表达式的修改,使 [...]
可选:
(?:\[.*?\])?(.+)
https://regex101.com/r/hM2sK8/1
请注意我如何将第一部分放在 非捕获组 中,并在组后使用 ?
使其成为可选的。
最简单的方法是使用
[^\[\]]*$
匹配除括号外的任意数量的字符,直到字符串结束。不过,它也会匹配 ][]sd[][xxx
中的 xxx
,所以如果您需要验证字符串的结构,这个正则表达式不够具体。
如何获取可选前缀后的字符串?示例:
Expression Result
------------------------
[asdf]xxx => xxx
[foo]bar => bar
[]bla => bla
test => test
[...]
为选填部分
显然,我需要一个环视断言。但我不知道把它设为可选。
(?:\[[^\]]*\]\K)?.+$
您可以尝试 this.See 演示。
https://regex101.com/r/wX9fR1/14
或
\[[^\]]*\](*SKIP)(*F)|.+$
查看演示。
这是对@Maroun 的正则表达式的修改,使 [...]
可选:
(?:\[.*?\])?(.+)
https://regex101.com/r/hM2sK8/1
请注意我如何将第一部分放在 非捕获组 中,并在组后使用 ?
使其成为可选的。
最简单的方法是使用
[^\[\]]*$
匹配除括号外的任意数量的字符,直到字符串结束。不过,它也会匹配 ][]sd[][xxx
中的 xxx
,所以如果您需要验证字符串的结构,这个正则表达式不够具体。