我正在尝试在c#中构建一个正则表达式来检查字符串是否遵循特定的格式。
我想要的格式是:[数字] [空格] [点] [字母]
例如:
123 .abc 按照格式
12345 .def 按照格式
123 abc 不遵循格式
我写这个表达但是它不能很好地运作
Regex.IsMatch(exampleString, @"^\d+ .")
答案 0 :(得分:6)
^
匹配字符串的开头,你就做对了。
\d+
匹配一个或多个数字,您也可以使用该数字。
正则表达式中的空格与文字空间匹配,因此也适用!
但是,.
是一个通配符,将匹配任何一个字符。如果要匹配文字句点,则需要使用这样的反斜杠来转义它:\.
。
要立即匹配字母,您可以在句点之后立即使用[a-z]+
。
@"^\d+ \.[a-z]+"
答案 1 :(得分:2)
正则表达式中的dot is a special character,匹配任何字符(通常是换行符除外)。要匹配文字.
,您需要将其转义:
Regex.IsMatch(exampleString, @"^\d+ \.")
如果要包含后续字母的条件,请使用:
Regex.IsMatch(exampleString, @"^\d+ \.[A-Za-z]+$")
答案 2 :(得分:0)
为了让你的匹配,请记住,正则表达式中的句点是一个与任何角色匹配的特殊字符,所以你需要逃避它。
此外,\ s是任何空白字符(制表符,换行符)的匹配。
^\d+\s+ \..+
(未测试的)