Regex 如何使用查找引号或行尾的正则表达式?
我想匹配任何以引号开头,然后以结尾引号或行尾(即$)结尾的字符串。我试过了,但很明显,括号内的美元符号不起作用。这个搜索可能吗Regex 如何使用查找引号或行尾的正则表达式?,regex,Regex,我想匹配任何以引号开头,然后以结尾引号或行尾(即$)结尾的字符串。我试过了,但很明显,括号内的美元符号不起作用。这个搜索可能吗 //The string to search var text = "\"something"; //The regex and an attempt at matching var m = text.match(/"(?:[^"\\]|\\.)*["$]/); //This is never called if (m != null) alert(m); 我认为
//The string to search
var text = "\"something";
//The regex and an attempt at matching
var m = text.match(/"(?:[^"\\]|\\.)*["$]/);
//This is never called
if (m != null) alert(m);
我认为这会对你有用:
/^"(?:[^"]*)("|$)/
上面说
^字符串开头,后跟双引号
?:[^]*0个或多个字符不是双引号,但不捕获组
|$可以是双引号,也可以是字符串的结尾
但我不确定你到底想要什么。您在找行尾还是字符串尾?$表示字符串的结尾。如果您想匹配线尾,您需要更像[\n\r]的东西,我想这对您很有用:
/^"(?:[^"]*)("|$)/
上面说
^字符串开头,后跟双引号
?:[^]*0个或多个字符不是双引号,但不捕获组
|$可以是双引号,也可以是字符串的结尾
但我不确定你到底想要什么。您在找行尾还是字符串尾?$表示字符串的结尾。如果要匹配行尾,您需要类似[\n\r]的内容,我会尝试以下内容:
^"[^"]*("$|$)
更新以排除ecscaped quotes我在问题中看不到此要求:
^"([^"]|\\")*("$|$)
示例:我会尝试以下内容:
^"[^"]*("$|$)
更新以排除ecscaped quotes我在问题中看不到此要求:
^"([^"]|\\")*("$|$)
示例:谢谢大家!我最后想到的是:/?:[^\\]\\\.*?:$/@Don Rhummy你试过我的吗?它是否不符合您的某些要求或错误?为什么要使用复杂的正则表达式?因为您的正则表达式不能解释引用文本中的反斜杠+引号。这应该是一个有效的文本:一些带有\inInsideThanks的文本用于帮助此操作!但你的新版本并不完全正确。我需要它匹配一个收盘报价或一行结束。因此,报价可以有其他的东西后,它不必在最后。它前面不能有一个\右键。也许是这个?[^\]+[^]\\\*[^\\]\$谢谢大家!我最后想到的是:/?:[^\\]\\\.*?:$/@Don Rhummy你试过我的吗?它是否不符合您的某些要求或错误?为什么要使用复杂的正则表达式?因为您的正则表达式不能解释引用文本中的反斜杠+引号。这应该是一个有效的文本:一些带有\inInsideThanks的文本用于帮助此操作!但你的新版本并不完全正确。我需要它匹配一个收盘报价或一行结束。因此,报价可以有其他的东西后,它不必在最后。它前面不能有一个\右键。也许是这个?[^\\]+[^]|\\*[^\\]|$