Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
Regex REQUEX不以空格开头,只有字母可以包含空格_Regex - Fatal编程技术网

Regex REQUEX不以空格开头,只有字母可以包含空格

Regex REQUEX不以空格开头,只有字母可以包含空格,regex,Regex,我使用这个正则表达式只检查可能包含空格或-的字母 ^[a-öA-Ö- ']*$ 但我不想让它以空白开头,有人能帮我吗?我建议使用 ^(?:[a-zöA-ZÖ'-][a-zöA-ZÖ '-]*)?$ 请注意主要区别: a-ö和a-Ö被相应地替换为a-zö和a-zÖ,因为a-Ö和a-Ö创建了太大的范围,并且很可能不符合您的要求,另请参见。如有必要,在Ö和ö之后添加更多内容 空格从第一个字符类(匹配1个字符)中取出,添加到第二个字符类(匹配零个或多个字符)中 因为您的正则表达式匹配空字符串,所

我使用这个正则表达式只检查可能包含空格或
-
的字母

^[a-öA-Ö- ']*$
但我不想让它以空白开头,有人能帮我吗?

我建议使用

^(?:[a-zöA-ZÖ'-][a-zöA-ZÖ '-]*)?$
请注意主要区别:

  • a-ö
    a-Ö
    被相应地替换为
    a-zö
    a-zÖ
    ,因为
    a-Ö
    a-Ö
    创建了太大的范围,并且很可能不符合您的要求,另请参见。如有必要,在
    Ö
    ö
    之后添加更多内容
  • 空格从第一个字符类(匹配1个字符)中取出,添加到第二个字符类(匹配零个或多个字符)中
因为您的正则表达式匹配空字符串,所以整个消费模式都包含在
(?:…)?
可选的非捕获组中。如果实际上不希望匹配空字符串,请删除此换行:

^[a-zöA-ZÖ'-][a-zöA-ZÖ '-]*$

使用
^(?[a-zöa-zÖ'-][a-zöa-zÖ'-]*)?$
。另外,请参见。除了ASCII之外,您希望与您的正则表达式匹配哪些字母?
[a-ö]
包括许多字母以外的字符。看一看ASCII表。@Thefourthbird你的正则表达式让小笑脸人哭了:@Aaron这是示例中OP使用的范围,我刚刚从第一个字符类中删除了空格。我将删除该评论。很好的例子:)谢谢!这就是我要找的^[a-zöa-zÖ-][a-zöa-zÖ-]*$