正则表达式得到的所有文字从#到报价

问题描述:

好了,所以我现在有:正则表达式得到的所有文字从#到报价

/(#([\"]))/g;

我希望能够检查像一个字符串:

#23ad23"

请告诉我错我的正则表达式?

+0

这是你的问题的全部?如果是这样,正则表达式可能是没有必要的。但我确实知道,在某些情况下,如果问题进一步扩大,情况可能更好。 – 2012-02-06 13:10:13

+1

当你要求正则表达式的情况下,通常包括一些测试用例,你期望什么以及你得到什么是一个好习惯。 – npinti 2012-02-06 13:13:13

+0

对这个问题进行严重的措辞表示歉意。 – Anicho 2012-02-06 13:17:55

您正则表达式(/(#([\"]))/g)打破了这样的:

没有开始/结束分隔符/旗帜和捕获括号..

#[\"] 

这只是意味着#,其次是",但方括号为类是不必要的,因为只有一个项目,所以相当于...

#" 

我想你想要t o匹配#"(含)之间的所有字符(并专门捕获)。

像这样的正则表达式

开始:

#.+?" 

这意味着#其次是任何东西(.)一次或多次(+)非贪婪(?),其次是"

所以与捕获括号和分度符...

/(#(.+?)")/g 
+0

感谢你的分解很好。 – Anicho 2012-02-06 13:54:23

这是你的意思?

/(#([^\"]+))/g; 

这将包括一切,直到它到达"字符。

+0

+1,因为你懂我的意思! – Anicho 2012-02-06 13:54:35

对于最小匹配cou NT(更大的长度相匹配):#(.+)\"

对于最大匹配计数(较小的长度相匹配):#(.+?)\"