this is a [sample] string with [some] special words. [another one]
提取方括号内的单词的正则表达式是什么,即 .
sample
some
another one
注意:在我的用例中,括号不能嵌套 .
7 回答
58
此代码将提取方括号和括号之间的内容
(?:(?<=\().+?(?=\))|(?<=\[).+?(?=\]))
(?: non capturing group
(?<=\().+?(?=\)) positive lookbehind and lookahead to extract the text between parentheses
| or
(?<=\[).+?(?=\]) positive lookbehind and lookahead to extract the text between square brackets
7 回答
此代码将提取方括号和括号之间的内容
您可以使用以下正则表达式 globally :
说明:
\[
:[
是一个元字符,如果你想按字面意思匹配它,需要进行转义 .(.*?)
:以非贪婪的方式匹配所有内容并捕获它 .\]
:]
是一个元字符,如果你想按字面意思匹配它,需要进行转义 .这应该没问题:
将无需括号捕获内容
(?<=\[)
-[
的正面观察.*?
- 内容非贪婪匹配(?=\])
-]
的正向前瞻编辑:对于嵌套括号,下面的正则表达式应该工作:
括号可以嵌套吗?
如果不是:
\[([^]]+)\]
匹配一个项目,包括方括号 . 反向引用\1
将包含要匹配的项目 . 如果您的正则表达式支持环视,请使用这只会匹配括号内的项目 .
(?<=\().*?(?=\))
按照上面给出的解释工作得很好 . 这是一个Python示例:鉴于以下解释,上述应该起作用
方括号[]中的
个字符定义了characte类,这意味着模式应匹配方括号中提到的至少一个charcater
\ s指定一个空格
表示至少之前提及的一个字符 .