gpt4 book ai didi

c# - 为什么 Regex isMatch 为真时给出假?

转载 作者:太空宇宙 更新时间:2023-11-03 17:15:52 24 4
gpt4 key购买 nike

我有一段 C# 代码验证文本框字段是否为正数

Regex isPositiveInt = new Regex("[^0-9]");
return !isPositiveInt.IsMatch(textbox1.Text)

我发现如果正则表达式匹配,它给出“false”,当它不匹配时,它给出“true”。所以我必须加一个“!”到返回值。这没有问题,但我觉得这是违反直觉的。有人可以解释为什么它会返回相反的结果吗?

最佳答案

^ 元字符在正则表达式中有两个含义 - 单独使用时标记字符串的开头,以及作为 [^...] 的一部分> 模式意思是“不匹配 [...] block 中的任何字符”。我想也许您打算改为 ^[0-9] ,它将匹配任何以数字开头的字符串。它不会确保整个字符串都是数字,因为它只检查第一个字符,之后可能会出现任何内容。

如果您想确保您的字符串是数字,只需 ^\d+$ 即可。 \d[0-9] 相同但更易读,^$ 标记开始和字符串的结尾。

关于c# - 为什么 Regex isMatch 为真时给出假?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5522432/

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