gpt4 book ai didi

c# - 正则表达式奇怪,为什么会这样?

转载 作者:太空狗 更新时间:2023-10-30 00:41:15 26 4
gpt4 key购买 nike

这个简单的正则表达式匹配 Movie 的文本。我把它读成“Q 重复零次或多次”是不是错了?为什么会匹配,不应该返回false吗?

public class Program
{
private static void Main(string[] args)
{
Regex regex = new Regex("Q*");
string input = "Movie";
if (regex.IsMatch(input))
{
Console.WriteLine("Yup.");
}
else
{
Console.WriteLine("Nope.");
}
}
}

最佳答案

正如您所说的那样,它的意思是“Q 重复了 次或更多次”。在这种情况下,它是零次,因此您实际上是在尝试匹配输入字符串中的 ""。作为IsMatch不关心它匹配的位置,它可以匹配输入字符串中任何位置的空字符串,因此它返回 true。

如果要确保整个输入字符串必须匹配,可以添加 ^$:"^Q*$".

Regex regex = new Regex("^Q*$");
Console.WriteLine(regex.IsMatch("Movie")); // false
Console.WriteLine(regex.IsMatch("QQQ")); // true
Console.WriteLine(regex.IsMatch("")); // true

关于c# - 正则表达式奇怪,为什么会这样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21915553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com