我想要一个 word.otherword 形式的正则表达式。我尝试了 \b[a-z]\.[a-z]\b
,但它在 \.
部分给了我一个错误,说 Unrecognized escape sequence
。知道出了什么问题吗?我在 .NET C# 下工作。谢谢!
乐:
john.Smith
或 JoHn.SmItH
或 JOHN.SMITH
应该可以工作。
John Smith
或 john!Smith
或 john.Smith.Smith
不应该工作。
最佳答案
试试这个:
foundMatch = Regex.IsMatch(SubjectString, @"\b[a-z]\.[a-z]\b");
可能你没有使用@?
您的正则表达式尝试匹配 a.a 这意味着单个字符。但是由于您希望它匹配完整的单词,因此您需要一个量词,例如
\b[a-z]+\.[a-z]+\b
最后,您可能希望使用不区分大小写的匹配来匹配大写字母的单词:
foundMatch = Regex.IsMatch(SubjectString, @"\b[a-z]+\.[a-z]+\b", RegexOptions.IgnoreCase);
这将匹配所有 words.words,每个单词至少有一个字符,无论大小写如何。
只有当第一个单词后面有空格或者它是字符串的开头并且第二个单词之后有空格或者它是字符串的结尾时,这才会匹配所有 word.otherword。
foundMatch = Regex.IsMatch(SubjectString, @"(?<=\s|^)\b[a-z]+\.[a-z]+\b(?=\s|$)", RegexOptions.IgnoreCase);
关于c# - word.otherword 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7685650/