gpt4 book ai didi

c# - 正则表达式 C# IsMatch()

转载 作者:行者123 更新时间:2023-11-30 15:35:10 28 4
gpt4 key购买 nike

我尝试使用正则表达式来检查字符串是否仅包含:0-9、A-Z、a-z、\、/或 -。我使用了 Regex validator = new Regex(@"[0-9a-zA-Z\-/]*"); 无论我引入什么字符串都是有效的。

检查看起来像这样:if(!validator.IsMatch(myString))

怎么了?

最佳答案

如果我明白你想要什么。我相信你的模式应该是

new Regex(@"^[0-9a-zA-Z\\\-/]*$");

^$ 符号是分别匹配字符串开头和结尾的 anchor 。如果没有这些,该模式将匹配包含该类中任何字符的任何字符串。对于它们,它匹配 包含该类字符的字符串。

您还指定要包括反斜杠字符,但原始模式在字符类中有 \-。这只是字符类中连字符的转义序列。要在字符类中也包含反斜杠,您需要单独指定(也转义)。因此,生成的字符类具有 \\(反斜杠)后跟 \-(连字符)。

现在,这仍然会匹配空字符串,因为 * 表示“零个或多个”。如果您只想匹配非空字符串,请使用:

new Regex(@"^[0-9a-zA-Z\\\-/]+$");

+ 表示“一个或多个”。

关于c# - 正则表达式 C# IsMatch(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15276316/

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