首页 > 解决方案 > 正则表达式:如何获取引号之间的所有单词、特殊字符和空格?

问题描述

目前我有一个正则表达式([^\[\][\[^\[\][\n"]+)来匹配 之间的文本"",但这不会捕获空格,例如,如果我输入" hello ",它将返回hello,而单词前后没有空格。

是否有一些表达式可以用来简单地捕捉两个引号之间的任何内容?

谢谢你。

标签: regex

解决方案


也许这会有所帮助:

(?<!\\)(\"|')(.+?)(?:(?<!\\)\1)

要获取引号内的文本,请获取第二个捕获组。

证明。

解释

(?<!\\)- 负面回顾。查找文字反斜杠 ('')

(\"|')- 测试“字符串”的开头

(.+?) -.将匹配除换行符以外任何内容。 +?意味着尽可能多,但只需要匹配。

(?:(?<!\\)\1)- 非捕获组。在这里使用,因此我们可以使用(?<!\\)前面描述的内容,而无需查看整个表达式。这

\1匹配第一个捕获组 ( (\"|'))。可以换成$1


推荐阅读