Javascript 正则表达式中需要插入符号(^)和美元符号($)吗?
我最近读过关于JavaScript正则表达式的文章,但我感到困惑 作者说有必要在所有正则表达式声明的开头和结尾包含插入符号(Javascript 正则表达式中需要插入符号(^)和美元符号($)吗?,javascript,regex,Javascript,Regex,我最近读过关于JavaScript正则表达式的文章,但我感到困惑 作者说有必要在所有正则表达式声明的开头和结尾包含插入符号(^)和美元符号($) 为什么需要它们?^表示输入字符串的开头 $表示结束 实际上,您不必在开始和结束时使用它们。您可以在任何地方使用em=)正则表达式很有趣(而且令人困惑)。它们并不代表一个角色。它们代表着开始和结束 ^表示输入字符串的开头 $表示结束 实际上,您不必在开始和结束时使用它们。您可以在任何地方使用em=)正则表达式很有趣(而且令人困惑)。它们并不代表一个角色。
^
)和美元符号($
)
为什么需要它们?
^
表示输入字符串的开头
$
表示结束
实际上,您不必在开始和结束时使用它们。您可以在任何地方使用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的书:)我有兴趣阅读一本关于数据结构的书,在看过你的网站后,我得出结论,我可以阅读《算法设计手册》:;)