Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字母数字小写字母和“-&引用,_C#_Regex - Fatal编程技术网

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会复制并粘贴你的答案,而不是你从某处复制的答案。缺少数字-添加的域,请告诉我你为什么回滚我的编辑?如果我做错了,至少让我知道。缺少数字-添加的任务,请告诉我为什么要回滚我的编辑?如果我做错了什么,至少让我知道。