正则表达式提取方括号之间的文本

简单的正则表达式问题。 我有如下格式的字符串: 正则表达式

this is a [sample] string with [some] special words. [another one]

提取方括号内单词的正则表达式是什么,即 this

sample
some
another one

注意:在个人用例中,方括号不能嵌套。 spa


#1楼

这样应该能够了: code

\[([^]]+)\]

#2楼

括号能够嵌套吗? ci

不然: \\[([^]]+)\\]匹配一项,包括方括号。 向后引用\\1将包含要匹配的项目。 若是您的正则表达式样式支持环视,请使用 字符串

(?<=\[)[^]]+(?=\])

这只会匹配括号内的项目。 string


#3楼

您能够全局使用如下正则表达式: it

\[(.*?)\]

说明: 引用

  • \\[[是一个元字符,若是要按字面值进行匹配,则须要转义。
  • (.*?) :以非贪婪的方式匹配全部内容并捕获它。
  • \\]]是一个元字符,若是要按字面值进行匹配,则须要转义。

#4楼

(?<=\[).+?(?=\])

将捕获不带括号的内容 项目

  • (?<=\\[) -对[

  • .*? -内容的非贪婪匹配

  • (?=\\]) -正向前看]

编辑:对于嵌套括号下面的正则表达式应该工做:

(\[(?:\[??[^\[]*?\]))

#5楼

此代码将提取方括号和括号之间的内容

(?:(?<=\().+?(?=\))|(?<=\[).+?(?=\]))

(?: 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
相关文章
相关标签/搜索