正则表达式与字符串的开头完全匹配

时间:2014-01-16 17:38:31

标签: c# regex

我正在尝试在c#中构建一个正则表达式来检查字符串是否遵循特定的格式。

我想要的格式是:[数字] [空格] [点] [字母]

例如:

123 .abc 按照格式

12345 .def 按照格式

123 abc 不遵循格式

我写这个表达但是它不能很好地运作

Regex.IsMatch(exampleString, @"^\d+ .")

3 个答案:

答案 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+ \..+

(未测试的)