Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Javascript 正则表达式中需要插入符号(^)和美元符号($)吗?_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式中需要插入符号(^)和美元符号($)吗?

Javascript 正则表达式中需要插入符号(^)和美元符号($)吗?,javascript,regex,Javascript,Regex,我最近读过关于JavaScript正则表达式的文章,但我感到困惑 作者说有必要在所有正则表达式声明的开头和结尾包含插入符号(^)和美元符号($) 为什么需要它们?^表示输入字符串的开头 $表示结束 实际上,您不必在开始和结束时使用它们。您可以在任何地方使用em=)正则表达式很有趣(而且令人困惑)。它们并不代表一个角色。它们代表着开始和结束 ^表示输入字符串的开头 $表示结束 实际上,您不必在开始和结束时使用它们。您可以在任何地方使用em=)正则表达式很有趣(而且令人困惑)。它们并不代表一个角色。

我最近读过关于JavaScript正则表达式的文章,但我感到困惑

作者说有必要在所有正则表达式声明的开头和结尾包含插入符号(
^
)和美元符号(
$


为什么需要它们?

^
表示输入字符串的开头

$
表示结束

实际上,您不必在开始和结束时使用它们。您可以在任何地方使用em=)正则表达式很有趣(而且令人困惑)。它们并不代表一个角色。它们代表着开始和结束


^
表示输入字符串的开头

$
表示结束

实际上,您不必在开始和结束时使用它们。您可以在任何地方使用em=)正则表达式很有趣(而且令人困惑)。它们并不代表一个角色。它们代表着开始和结束


它们匹配字符串的开头(
^
)和结尾(“$”)


在匹配字符串开头或结尾的字符串时,应该使用它们。但是,我不会说您必须使用它们。

它们匹配字符串的开头(
^
)和结尾(“$”)


在匹配字符串开头或结尾的字符串时,应该使用它们。但是,我不会说您必须使用它们。

^
将RE的开头锚定在测试字符串的开头,而
$
将RE的结尾锚定在测试字符串的结尾。如果那是你想要的,那就去吧!但是,如果你使用的形式是“代码> > ^ * .RealRe.*$/CODE >,那么你可能想考虑抛锚,只使用RE的核心。
默认情况下,某些语言强制将RE锚定在两端。

^
将RE的开头锚定在测试字符串的开头,将RE的结尾锚定在测试字符串的结尾。如果那是你想要的,那就去吧!但是,如果你使用的形式是“代码> > ^ * .RealRe.*$/CODE >,那么你可能想考虑抛锚,只使用RE的核心。 默认情况下,某些语言强制将REs锚定在两端。

Javascript RegExp()允许您指定多行模式(m),该模式可更改
^
$
的行为


^
表示多行模式下当前行的开头,否则表示字符串的开头

$
表示多行模式下当前行的结尾,否则为字符串的结尾

例如:这允许您在下一行以“var”开头的行尾匹配类似分号的内容$\n\s*var/m

Fast regexen还需要一个“锚”点,从某个地方开始搜索字符串中的某个地方。这些字符告诉正则表达式引擎从何处开始查找,通常会减少回溯的数量,在许多情况下,使正则表达式的速度大大加快

注:这些知识来自尼古拉斯·扎卡斯的

结论:你应该使用它们

Javascript RegExp()允许您指定一个多行模式(m),用于更改
^
$
的行为


^
表示多行模式下当前行的开头,否则表示字符串的开头

$
表示多行模式下当前行的结尾,否则为字符串的结尾

例如:这允许您在下一行以“var”开头的行尾匹配类似分号的内容$\n\s*var/m

Fast regexen还需要一个“锚”点,从某个地方开始搜索字符串中的某个地方。这些字符告诉正则表达式引擎从何处开始查找,通常会减少回溯的数量,在许多情况下,使正则表达式的速度大大加快

注:这些知识来自尼古拉斯·扎卡斯的

结论:你应该使用它们

我已经测试了这些。
1/^a/匹配abb、ab,但不匹配ba、bab、bba。
2/a/匹配abb、ab和ba、bab、bba

我认为/^a/匹配以a开头的字符串。
/a/匹配这样的字符串,其中包含a

类似于/^a/,/a$/匹配ba,a,但不匹配ab,bab

参考


如果您通知我上面的错误(或奇怪)句子,我将非常感谢。

我已经测试了这些。
1/^a/匹配abb、ab,但不匹配ba、bab、bba。
2/a/匹配abb、ab和ba、bab、bba

我认为/^a/匹配以a开头的字符串。
/a/匹配这样的字符串,其中包含a

类似于/^a/,/a$/匹配ba,a,但不匹配ab,bab

参考



如果您通知我上面或这封信中有错误(或奇怪)的句子,我会感谢您。

多行模式是什么意思?@Ant's It的意思是分别匹配多行字符串的每一行-请访问regexpal.com查看,谢谢您的回答;)主要是说使用锚将有助于正则表达式引擎;)谢谢;)不客气,顺便说一句,我强烈建议你阅读Zakas的书:)我有兴趣阅读一本关于数据结构的书,在看过你的网站后,我得出结论,我可以阅读《算法设计手册》:;)“多行模式”是什么意思?@Ant的意思是分别匹配多行字符串的每一行-请访问regexpal.com查看,谢谢您的回答;)主要是说使用锚将有助于正则表达式引擎;)谢谢;)不客气,顺便说一句,我强烈建议你阅读Zakas的书:)我有兴趣阅读一本关于数据结构的书,在看过你的网站后,我得出结论,我可以阅读《算法设计手册》:;)