使用正则表达式时只使用^
与^.*
的区别是什么?Solo Caret vs. Caret with greedy可选字符
似乎只有^
可以是一个有效的模式(不只是一个锚点)。上的jsfiddle
测试结果: - https://jsfiddle.net/wLvx0mus/4/
使用正则表达式时只使用^
与^.*
的区别是什么?Solo Caret vs. Caret with greedy可选字符
似乎只有^
可以是一个有效的模式(不只是一个锚点)。上的jsfiddle
测试结果: - https://jsfiddle.net/wLvx0mus/4/
是的,/^/
是一个有效的模式。它将匹配它适用于任何字符串,所以它没有好搜索,验证或提取文本,但更换是非常有用的:
result = subject.replace(/^/mg, "gronk");
这将增加gronk
每行的开头。鉴于此:
result = subject.replace(/^.*/mg, "gronk");
...将用gronk
替换每行的内容。
假设你正在使用它作为串字符的开始,一个字符串的开头匹配,另一个代表任何类型的0个或更多字符从头开始的字符串
作为替代,第一个将有效地预先替换您的替换值,而另一个将用替换值替换所有值。
然而,如果要在字符类使用^
,也可能是负的匹配标志(例如[^.*]
应该表示这不是一个字面.
或*
任何字符)。无论如何,在不了解您的案例如何使用的情况下提供有用的答案是非常困难的。另外,请提供您正在使用的正则表达式。语法上的差异可能会产生很大的影响。
给我们一个例子。取决于上下文,'^'可以是几个不同的东西。它可以是[String Anchors](http://www.regular-expressions.info/anchors.html),[Literal Character](http://www.regular-expressions.info/characters.html)或[Character类](http://www.regular-expressions.info/shorthand.html) –
许多用户使用regex101显示正则表达式示例。 [这是我想你问的一个例子。](https://regex101.com/r/zU7kG4/1) –
在我看来,我可以使用一个插入符号(最短的选项)来表示“任何” ,那么为什么要使用^。*(更长)。 –