如果正则表达式缺少第一个括号,则获取括号之间的所有文本
Get all text between brackets if first bracket is missed with Regex
我正在尝试编写正则表达式,它也可以匹配括号和括号之间的所有文本。但有一个条件:第一个括号可能会被遗漏。
例如:
今天是[晴天]
和
今天是晴天]
第一种情况我想要[晴天]。第二个我想要 今天是晴天].
我写了正则表达式,但它只适用于第一种情况。
(?(?=\[).*?|)\]
我试过像这样设置其他操作
(?(?=\[).*?|.*?)\]
但在这种情况下,我得到的是 今天是 [晴天] 而不是 [晴天].
有没有正则表达式可以解决我的问题?
假设不考虑嵌套括号,您可以简单地使用
\[?[^\]\[]*\]
或者少一点转义
\[?[^][]*]
这将有选择地匹配左方括号、任何不包含方括号和右方括号的内容。
见https://regex101.com/r/97F2wM/1
(在取反字符class后添加\n
以避免行重叠)
我正在尝试编写正则表达式,它也可以匹配括号和括号之间的所有文本。但有一个条件:第一个括号可能会被遗漏。 例如:
今天是[晴天]
和
今天是晴天]
第一种情况我想要[晴天]。第二个我想要 今天是晴天].
我写了正则表达式,但它只适用于第一种情况。
(?(?=\[).*?|)\]
我试过像这样设置其他操作
(?(?=\[).*?|.*?)\]
但在这种情况下,我得到的是 今天是 [晴天] 而不是 [晴天].
有没有正则表达式可以解决我的问题?
假设不考虑嵌套括号,您可以简单地使用
\[?[^\]\[]*\]
或者少一点转义
\[?[^][]*]
这将有选择地匹配左方括号、任何不包含方括号和右方括号的内容。
见https://regex101.com/r/97F2wM/1
(在取反字符class后添加\n
以避免行重叠)