C# 字母数字小写字母和“-&引用,
我想验证用户是否只输入以下内容:C# 字母数字小写字母和“-&引用,,c#,regex,C#,Regex,我想验证用户是否只输入以下内容: 字母数字a到z,仅小写 可以包含连字符'-',但不能以其开头或结尾 可以包含“”。,但不能以它开头或结尾 最后可以有空间 我尝试了以下方法,但不起作用,你知道如何改变吗 "^[a-z0-9]+(\.-[a-z0-9]+)*$" 您可以使用此正则表达式: ^[a-z\d][\da-z-.]*[a-z\s\d]$ ^[a-z\d]表示以a-z或数字开头 然后 [\da-z-.]*表示匹配0或更多数字、a-z、连字符和点 及 [a-z\s\d]$表示它只允许a-z
a到z
,仅小写'-'
,但不能以其开头或结尾”。
,但不能以它开头或结尾"^[a-z0-9]+(\.-[a-z0-9]+)*$"
您可以使用此正则表达式:
^[a-z\d][\da-z-.]*[a-z\s\d]$
^[a-z\d]
表示以a-z或数字开头
然后
[\da-z-.]*
表示匹配0或更多数字、a-z、连字符和点
及
[a-z\s\d]$
表示它只允许a-z、数字或空格。您可以使用此正则表达式:
^[a-z\d][\da-z-.]*[a-z\s\d]$
^[a-z\d]
表示以a-z或数字开头
然后
[\da-z-.]*
表示匹配0或更多数字、a-z、连字符和点
及
[a-z\s\d]$
意味着它只允许a-z、数字或空格。shopia,您可以这样做:
bool isValid = false;
try {
isValid = Regex.IsMatch(s1, @"^[a-z\d][-.a-z\d]* ?(?<![-.])$");
} catch (ArgumentException ex) {
// some syntax error
}
shopia,你可以这样做:
bool isValid = false;
try {
isValid = Regex.IsMatch(s1, @"^[a-z\d][-.a-z\d]* ?(?<![-.])$");
} catch (ArgumentException ex) {
// some syntax error
}
请确保语法一致。如果这是一个C#字符串(如引号所示),则可能需要复制反斜杠。如果是正则表达式本身,请删除引号。请确保语法一致。如果这是一个C#字符串(如引号所示),则可能需要复制反斜杠。如果是正则表达式本身,请删除引号。在这种特殊情况下,无需任何解释的无意识复制和粘贴的答案可能有助于OP,但可能不会帮助他们了解如何普遍解决此类问题,也不会帮助任何具有类似问题的未来访客,但问题并不完全相同。@O.R.Mapper,如果你有关于复制粘贴的引文,请发表评论。否则,不要。我不明白你的评论,你能重新措辞吗?“复制粘贴引用”是什么意思?顺便问一下,虽然我同意这个问题很模糊,但您建议的正则表达式要求匹配字符串的最小长度为三个字符,这不是问题中包含的限制。@AmitJoki:我认为其意思是OP会复制并粘贴你的答案,而不是你从某个地方复制的答案。在这种情况下,无需任何解释的无意识复制和粘贴的答案可能对OP有所帮助,但这可能不会帮助他们理解如何解决这类问题,也不会帮助任何未来的访问者解决类似但不完全相同的问题。@O.R.Mapper,如果你有关于复制粘贴的引文,请发表评论。否则,不要。我不明白你的评论,你能重新措辞吗?“复制粘贴引用”是什么意思?顺便问一下,虽然我同意这个问题很模糊,但您建议的正则表达式要求匹配字符串的最小长度为三个字符,这不是问题中包含的限制。@AmitJoki:我想意思是OP会复制并粘贴你的答案,而不是你从某处复制的答案。缺少数字-添加的域,请告诉我你为什么回滚我的编辑?如果我做错了,至少让我知道。缺少数字-添加的任务,请告诉我为什么要回滚我的编辑?如果我做错了什么,至少让我知道。