C# 正则表达式:搜索键验证
请帮助学习正则表达式。我正在验证字符串。该值不应仅包含%,如果有%,则长度应超过3个字符,包括%。%可以是字符串中的任意位置(包括点) 我可以想出这个。只有当字符串中有%时,才应进行此验证。如果没有%s,则无需验证C# 正则表达式:搜索键验证,c#,regex,C#,Regex,请帮助学习正则表达式。我正在验证字符串。该值不应仅包含%,如果有%,则长度应超过3个字符,包括%。%可以是字符串中的任意位置(包括点) 我可以想出这个。只有当字符串中有%时,才应进行此验证。如果没有%s,则无需验证 @“^[a-zA-Z0-9.]*%”//{3,}$“; 谢谢,纳文 示例: “%”-失败 “%12”-失败 “%123”-通过 “%1234”-通过 “12%3”-通过 “abc%”-通过 “abc”-通过 “A”-通过 “ABC”-通过 我认为这不需要Regex来解决,只需要一些
@“^[a-zA-Z0-9.]*%”//{3,}$“;
谢谢,纳文
示例:
-失败“%”
-失败“%12”
-通过“%123”
-通过“%1234”
-通过“12%3”
-通过“abc%”
-通过“abc”
-通过“A”
-通过“ABC”
Regex
来解决,只需要一些字符串方法就可以了:
var valid = !input.Contains("%") || input.Length > 3;
如果您想使用Regex
,这里有:
^([^%]+|.{4,})$
我不认为这需要
Regex
来解决,只需要一些字符串方法就可以了:
var valid = !input.Contains("%") || input.Length > 3;
如果您想使用Regex
,这里有:
^([^%]+|.{4,})$
如果这就是验证的范围,最好使用
字符串的Contains(“%”)和Length属性
return !value.Contains("%") || value.Length > 3;
使用一个正则表达式来测试总长度和其中的模式本身是困难的。如果%
位于一个固定位置(开始、结束、从开始算起的2rd字符等),它将更适合,但这不是一个用单个正则表达式优雅地解决的问题
这可以用一个丑陋的正则表达式来完成,使用一些lookarounds,但该解决方案不太可能在不同的正则表达式实现之间进行移植(例如,它可能不适用于客户端Javascript验证)。如果这是验证的范围,最好使用Contains(“%”)和字符串的长度属性
return !value.Contains("%") || value.Length > 3;
使用一个正则表达式来测试总长度和其中的模式本身是困难的。如果%
位于一个固定位置(开始、结束、从开始算起的2rd字符等),它将更适合,但这不是一个用单个正则表达式优雅地解决的问题
这可以用一个丑陋的正则表达式来完成,使用一些lookarounds,但该解决方案不可能在不同的正则表达式实现之间进行移植(例如,它可能无法与客户端Javascript验证一起工作)。请在c#中尝试以下表达式:
它与示例中描述的匹配:
“%”
-失败
“%12”
-失败
“%123”
-通过
“%1234”
-通过
“12%3”
-通过
“abc%”
-通过
“abc”
-通过
“A”
-通过
“ABC”
-通过
在同一表达式中使用非捕获、非原子组,以便在javascript中工作(解决Jay的问题):
请尝试使用c#中的以下表达式:
它与示例中描述的匹配:
“%”
-失败
“%12”
-失败
“%123”
-通过
“%1234”
-通过
“12%3”
-通过
“abc%”
-通过
“abc”
-通过
“A”
-通过
“ABC”
-通过
在同一表达式中使用非捕获、非原子组,以便在javascript中工作(解决Jay的问题):
假设验证至少需要1个字符-
^(?:[^%]+|.*[^%].*[^%].*[^%].*)$
与JonM相同(但不知道如何删除此项)。假设验证至少需要1个字符-
^(?:[^%]+|.*[^%].*[^%].*[^%].*)$
与JonM相同(但不知道如何删除此内容).Yes true,其他验证是使用正则表达式属性完成的,因此尝试保持一致。Yes,但是使用正确的工具来完成作业比使用错误的工具并保持一致要好。Yes true,其他验证是使用正则表达式属性完成的,因此尝试保持一致。Yes,但是使用正确的工具更好对于作业,请使用错误的工具并保持一致。验证字符串(如果它包含%),如果是,则字符串的长度应大于3。建议使用检查正则表达式。“%”如何“-通过还是失败?失败,对不起,我没有在示例中给出这个。谢谢大家的回答和建议。按照金和杰伊的说法,他们会尽量保持解决方案的简单。谢谢你,John,这正是我想要的。验证字符串如果包含%,如果是,则字符串长度应大于3。建议使用检查正则表达式。关于“%%%”如何-通过或失败?失败,很抱歉没有在示例中给出此项。感谢所有人的回答和建议。按照金和杰伊的说法,他们会尽量保持解决方案的简单。谢谢你,约翰,这正是我想要的。@Jay Beauty在旁观者眼中;)@情人眼里出西施;)