^[A-Za-Z ][A-Za-z0-9 ]* 正则表达式?
Posted
技术标签:
【中文标题】^[A-Za-Z ][A-Za-z0-9 ]* 正则表达式?【英文标题】:^[A-Za-Z ][A-Za-z0-9 ]* regular expression? 【发布时间】:2010-12-11 19:47:55 【问题描述】:正则表达式^[A-Za-Z ][A-Za-z0-9 ]*
描述“第一个字母应该是字母,其余字母可能是字母数字”。但是我如何也允许特殊字符?当我输入“C#”时,它会引发错误。
如何输入特殊字符,首字母应为字母?
【问题讨论】:
这也应该被标记为正则表达式 @joemoe:我为你标记了“正则表达式”。 请注意,键入时,它是“第一个字符应该是字母或空格...” 【参考方案1】:目前给出的很多答案都很好,但你必须清楚地定义你想要的究竟是什么。
如果您想要一个字母字符后跟任意数量的非空白字符(请注意,它还包括数字!)那么您应该使用这个:
^[A-Za-z]\S*$
如果您只想包含字母数字字符和某些符号,请使用:
^[A-Za-z][A-Za-z0-9!@#$%^&*]*$
您的原始问题看起来您也尝试包含空格字符,因此您可能想要这样的内容:
^[A-Za-z ][A-Za-z0-9!@#$%^&* ]*$
这就是我的最终答案!
我建议花一些时间来了解更多关于正则表达式的知识。它们是自切片面包以来最棒的东西!
试试这个syntax reference 页面(这个网站总体来说非常好)。
【讨论】:
@Peter Di Cecco:你忘了 0-9。【参考方案2】:此表达式将强制第一个字母为字母,其余字符为字母数字或以下任何特殊字符:@,#,%,&,*
^[A-Za-z][A-Za-z0-9@#%&*]*$
【讨论】:
@Surya sasidhar:好的,我修改了正则表达式以包含 @,%,&,*。 @Surya sasidhar:你想允许空格吗?标题中的原始正则表达式似乎允许空格。 @Xinus:不。 * 在字符类中时不需要转义。 如何在其中添加空格?【参考方案3】:试试这个:
^[A-Za-z ].*
【讨论】:
乔莫先生不作为表达【参考方案4】:怎么样
^[A-Za-z]\S*
一个字母后跟 0 个或多个非空格字符(将包括所有特殊符号)。
【讨论】:
【参考方案5】:首先必须是字母,然后目标字符串中不允许使用点。 下面是代码。
string input = "A_aaA";
// B
// The regular expression we use to match
Regex r1 = new Regex("^[A-Za-z][^.]*$"); //[\t\0x0020] tab and spaces.
// C
// Match the input and write results
Match match = r1.Match(input);
if (match.Success)
Console.WriteLine("Valid: 0", match.Value);
else
Console.WriteLine("Not Match");
Console.ReadLine();
【讨论】:
【参考方案6】:此表达式将检查第一个字母是否为字母,其余字符是否为字母数字或以下任何特殊字符:@,#,%,&,
^[A-Za-z][A-Za-z0-9@#%&\*]*$
【讨论】:
【参考方案7】:这个表达式只得到数字
If Regex.IsMatch(mystring, "^[A-Za-z ].*|\s") Then
MessageBox.Show("please fill the box", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
ElseIf (mystring = "") Then
MessageBox.Show("please fill the box", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
【讨论】:
【参考方案8】:^[A-Za-z](\W|\w)*
(\W|\w)
将确保后面的每个字母都是单词(\w
)或非单词(\W
)
您也可以使用.*
代替(\W|\w)*
,其中.
表示绝对类似于(\w|\W)
的任何东西
【讨论】:
这与“^[A-Za-z].*”甚至“^[A-Za-z]”有何不同? @Xinus: 字符类 [\W|\w] 表示单词字符,|字符或非单词字符。如果您将方括号更改为括号,则表示您声称的内容。但它仍然可以更简单、更优雅地表达。 @Asaph:我对正则表达式没有太多经验...我认为您说的听起来合乎逻辑,我将其更改为括号... @paxdiablo: "^[A-Za-z]" 只会匹配第一个字符,而不是整个单词。 “^[A-Za-z].*” 可以正常工作,正如 Xinus 在编辑后所说的那样。 @Xinus 这个答案可能不正确。初始正则表达式匹配一个有效的 C 标识符。不幸的是,此解决方案将匹配“FOO\n\n\n”以及“C#”。以上是关于^[A-Za-Z ][A-Za-z0-9 ]* 正则表达式?的主要内容,如果未能解决你的问题,请参考以下文章
正则表达式 (^|[^A-Za-z0-9])Trump([^A-Za-z0-9]|$) 含义