Javascript正则表达式结束单词未找到

时间:2015-05-15 13:11:23

标签: javascript regex

In this regex,我需要匹配以CONVERT(NVARCHAR, CONVERT(VARBINARY, '0x' + SUBSTRING(SUA.[USER_NAME], 3, LEN(SUA.[USER_NAME])), 1)) AS USER_NAME_TEXT '(', ')'开头的结尾字词。

正则表达式:

','

例如,给定文本/[\(\),].*$/ 我需要获取(aaa,bbb)ccc。仍然,它返回整个文本。这个正则表达式有什么问题?

3 个答案:

答案 0 :(得分:2)

您可以使用:

'(aaa,bbb)ccc'.match(/[(),][^(),]+$/)
//=> [")ccc"]

[^(),]+ 否定模式匹配[^(),]中列出的任何字符。

[(),].*$的问题在于它在输入中匹配第一个(并匹配到结尾。

答案 1 :(得分:1)

您还可以考虑使用捕获群,同时使用截至第一个(),的所有字符:

.*([(),].*)$

.*会消耗尽可能多的字符,然后消耗此字符类[(),]中的任何字符,然后是其他字符直到最后。

)ccc值将存储在第1组:

var re = /.*([(),].*)$/; 
var str = '(aaa,bbb)ccc';
 
if ((m = re.exec(str)) !== null) {
    document.getElementById("res").innerHTML = m[1];
}
<div id="res"/>

答案 2 :(得分:0)

试试this正则表达式:

/[(,)][^(,)]*$/