简单的正则表达式问题。我有一个字符串的以下格式:
this is a [sample] string with [some] special words. [another one]
提取方括号内的单词的正则表达式是什么?
sample
some
another one
注意:在我的用例中,括号不能嵌套。
简单的正则表达式问题。我有一个字符串的以下格式:
this is a [sample] string with [some] special words. [another one]
提取方括号内的单词的正则表达式是什么?
sample
some
another one
注意:在我的用例中,括号不能嵌套。
当前回答
(?<=\[).+?(?=\])
将捕获没有括号的内容
(?<=\[) -[的正向回溯 . * ?-非贪婪匹配的内容 (?=\]) -正向预测]
编辑:对于嵌套括号,下面的正则表达式应该工作:
(\[(?:\[??[^\[]*?\]))
其他回答
括号可以嵌套吗?
如果不是:\[([^]]+)\]匹配一个项目,包括方括号。反向引用\1将包含要匹配的项。如果你的正则表达式口味支持搜索,请使用
(?<=\[)[^]]+(?=\])
这将只匹配括号内的项。
(?<=\[).*?(?=\])根据上述解释工作良好。下面是一个Python示例:
import re
str = "Pagination.go('formPagination_bottom',2,'Page',true,'1',null,'2013')"
re.search('(?<=\[).*?(?=\])', str).group()
"'formPagination_bottom',2,'Page',true,'1',null,'2013'"
蒂姆·皮茨克的答案在这里
(?<=\[)[^]]+(?=\])
几乎就是我一直在找的人但有一个问题是,一些传统浏览器可能会在正向向后查找时失败。 所以我今天只能靠自己了:)。我设法写下了这些:
/([^[]+(?=]))/g
也许它会帮助别人。
Console.log("这是一个带有[一些]特殊单词的[示例]字符串。(一)“.match (/([^[]+(?=]))/ g));
如果你想要填充方括号a-z之间的小字母
(\[[a-z]*\])
如果你想要小写字母a-zA-Z
(\[[a-zA-Z]*\])
如果你想要小写字母和数字字母a-zA-Z0-9
(\[[a-zA-Z0-9]*\])
如果你想要所有在方括号之间的东西
如果你想要文字,数字和符号
(\[.*\])
你可以全局使用以下正则表达式:
\[(.*?)\]
解释:
\[:[是一个元字符,如果你想字面上匹配它,就需要转义。 (.*?):以非贪婪的方式匹配所有内容并捕获它。 \]:]是一个元字符,如果你想字面上匹配它,就需要转义。