检查字符串的一部分是否与正则表达式匹配
本文关键字:正则表达式 是否 字符串 一部分 检查 | 更新日期: 2023-09-27 18:00:49
我正在尝试根据各种正则表达式验证字符串;但是,如果空白字符被添加到字符串的结尾,它们就不再被标记。
if (Regex.IsMatch(literal.Value.ToString().ToLower(), @"^'+?[0-9'-'(')'.'/]{8,20}$")
{
//Logic
}
在以下代码中;X值被标记,但Z值不被标记。
string x = "0337350670"; // Gets flagged
string z = "0337350670 "; // Does not get flagged
我应该更改正则表达式,还是有一种方法可以针对字符串的一部分进行验证?
您只需Trim
您的字符串即可从两边删除尾随空格。
此外,在一个字符类中,许多特殊的正则表达式字符不再特殊(-
仍然是,但如果你这样放,它会被转义:[...-]
(。
Regex.IsMatch(literal.Value.ToString().ToLower().Trim(),
@"^'+?[0-9()./-]{8,20}$"
删除^$
也可以,但请注意,这将允许一行中包含20个以上数字的字符串:您不再检查最大长度(任何包含[0-9()./-]{8}
的都会匹配(。
从正则表达式中删除^
和$
将允许表达式在字符串中的任何位置匹配。
您可以从字符串末尾删除$
末尾字符并添加.*
:
if (Regex.IsMatch(literal.Value.ToString().ToLower(), @"^'+?[0-9'-'(')'.'/]{8,20}.*")
{
//Logic
}
现在它将同时匹配:Demo