我有一个文本框,我需要用正则表达式在文本框中至少两个单词验证它,并且在第一个字符中不包含空格。请给我一个正则表达式来验证我的文本框
目前我正在使用
^((\b[a-zA-Z]{2,40}\b)\s*){2,}$
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
controltovalidate="TextBox1" validationexpression="^((\b[a-zA-Z]{2,40}\b)\s*){2,}$"
errormessage="at least two words"></asp:RegularExpressionValidator>
<asp:Button ID="Button1" OnClick="btnClick" runat="server" Text="Button" />
答案 0 :(得分:1)
假设它们可以被任何空格字符(空格,制表符等)分隔开来:
^[a-z]+(?:\s[a-z]+)+$
以下是细分:
^
[a-z]+
之间范围内的单个字符
+
(?:\s[a-z]+)+
下面的正则表达式
+
\s
[a-z]+
之间范围内的单个字符
+
$
...但如果他们只用分隔空格:
^[a-z]+(?: [a-z]+)+$
...或者如果分隔符有任何非单词字符:
^[a-z]+(?:\W[a-z]+)+$
这应与RegexOptions.IgnoreCase
一起使用。例如(在C#中):
if (Regex.IsMatch(subjectString, @"^[a-z]+(?:\W[a-z]+)+$", RegexOptions.IgnoreCase)) {
// Successful match
} else {
// Match attempt failed
}
答案 1 :(得分:0)
你可能正在寻找这个:
^[a-zA-Z]{2,40}(?: +[a-zA-Z]{2,40})+$
说明
^ # anchor for the start of the string
[a-zA-Z]{2,40} # ascii letters
(?: # open a non-capturing group
[ ]+[a-zA-Z]{2,40} # one or more spaces followed by letters
)+ # repeat the group one or more times
$ # anchor for the end of the string
请注意,字边界是无用的。