在很多应用中,输入框经常需要进行校验,以确保用户输入的内容符合规范。其中有一种常见的需求是验证输入的英文内容是否存在相邻重复。例如,当用户输入“book book”时,会提示“输入存在相邻重复”。
代码如下:
public static bool IsRptAdjacent(string item)
{
return System.Text.RegularExpressions.Regex.IsMatch(item, @"\b(?<wordre>\w+)\s+(\k<wordre>)\b", System.Text.RegularExpressions.RegexOptions.Compiled | System.Text.RegularExpressions.RegexOptions.IgnoreCase);
}
public static string RptAdjacent(string item)
{
string str = null;
System.Text.RegularExpressions.MatchCollection matches = System.Text.RegularExpressions.Regex.Matches(label1.Text, @"\b(?<wordre>\w+)\s+(\k<wordre>)\b", System.Text.RegularExpressions.RegexOptions.Compiled | System.Text.RegularExpressions.RegexOptions.IgnoreCase);
if (matches.Count != 0)
{
foreach (System.Text.RegularExpressions.Match match in matches)
{
string word = match.Groups["wordre"].Value;
str += (string.IsNullOrWhiteSpace(str) ? "" : " ") + word;
}
}
return str;
}
主要原理,使用正则匹配查找
以下为示例代码效果展示: