Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何使用查找引号或行尾的正则表达式?_Regex - Fatal编程技术网

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的文本用于帮助此操作!但你的新版本并不完全正确。我需要它匹配一个收盘报价或一行结束。因此,报价可以有其他的东西后,它不必在最后。它前面不能有一个\右键。也许是这个?[^\\]+[^]|\\*[^\\]|$