这两个正则表达式之间有什么区别

时间:2014-12-01 18:12:14

标签: regex

很抱歉提出这个愚蠢的问题,但我只是想确保我做对了。

之间有什么区别
^Sentence.*$

^Sentence.*

我通常使用第一个,但我想确定哪个更合适。

2 个答案:

答案 0 :(得分:1)

这取决于上下文(即字符串)。

$默认表示:字符串的结尾 量词,如*,默认是贪婪的。

如果字符串不包含换行符,则两个模式完全相同。 (从某种意义上说,它们将完全匹配相同的字符串)

但是如果你的字符串包含换行符,则.*将在它之前停止,因为默认情况下,点与换行符不匹配。因此第一个模式将始终失败,第二个模式将仅匹配第一行(如果它显然以“Sentence”开头)

答案 1 :(得分:0)

来自RegExBuddy ;;

^ "Assert position at the beginning of a line (at beginning of the string or before a line break character)"
. "Match any single character that is not a line break character"
* "Between zero and unlimited times, as many times as possible, giving back as needed (greedy)"
$ "Assert position at the end of a line (at the end of the string or before a line break character)"

HTH。

http://www.regular-expressions.info/