正则expression式只匹配字母

我怎样才能写一个只匹配字母的正则expression式?

使用字符集: [a-zA-Z]以小写和大写匹配来自A-Z的一个字母。 [a-zA-Z]+匹配一个或多个字母,而^[a-zA-Z]+$只匹配只包含一个或多个字母的string( ^$分别表示string的开始和结束)。

如果您想要匹配除A-Z之外的其他字母,则可以将它们添加到字符集: [a-zA-ZäöüßÄÖÜ] 。 或者,您使用预定义的字符类,如Unicode字符属性类\p{L} ,它描述了字母的Unicode字符。

如果您对超出拉丁字母的字母感兴趣, \p{L}匹配任何一个Unicode字母

根据你的“性格”的含义:

[A-Za-z] – 所有字母(大写和小写)

[^0-9] – 所有非数字字符

最接近的选项是

 [\u\l]+ 

它匹配大写和小写字母的序列。 但是,所有的编辑/语言都不支持,所以使用起来可能更安全

 [a-zA-Z]+ 

正如其他用户所build议

对于PHP,以下将正常工作

 '/^[a-zA-Z]+$/' 
 /[a-zA-Z]+/ 

超级简单的例子。 正则expression式在网上很容易find。

http://www.regular-expressions.info/reference.html

很less有人写成“/ ^ [a-zA-Z] $ / i”的正则expression式是不正确的,因为最后他们提到/ i是不区分大小写的,在第一次匹配后它会返回。 而不是/我只是使用/ g这是全球性的,你也没有任何需要把^ $作为开始和结束。

 /[a-zA-Z]+/g 
  1. [a-z _] +匹配下面列表中的单个字符
  2. 量词: +在一次和无限次之间,尽可能多地按需要回馈
  3. az a和z之间范围内的单个字符(区分大小写)
  4. AZ是A和Z之间范围内的单个字符(区分大小写)
  5. g修饰符:全局。 所有比赛(不要在第一场比赛中返回)

使用字符组

 \D 

匹配除数字0-9之外的任何字符

 ^\D+$ 

看这里的例子

只需使用\w[:alpha:] 。 这是一个转义序列,只匹配可能出现在文字中的符号。

如果您的意思是任何字符编码中的任何字母,那么一个好方法可能是删除空格\s ,数字\d以及其他特殊字符之类的非字母:

 [!@#\$%\^&\*\(\)\[\]:;'",\. ...more special chars... ] 

或者用否定的否定来直接描述任何字母:

 \S \D and [^ ..special chars..] 

优点:

  • 适用于所有正则expression式。
  • 容易写,有时节省很多时间。

缺点:

  • 长,有时不完美,但字符编码也可以被打破。

你会用

 /[az]/gi 

[] – 检查给定input之间的任何字符

az —涵盖了整个字母表

g —–整个string全局

我—–大写和小写

pattern = / [a-zA-Z] /

放置“[a-zA-Z]:#{pattern.match(”mine blossom“)}”好的

放置“[a-zA-Z]:#{pattern.match(”456“)}”

放置“[a-zA-Z]:#{pattern.match(”“)}”

放置“[a-zA-Z]:#{pattern.match(”#$%^&*“)}”

放置“[a-zA-Z]:#{pattern.match(”#$%^&* A“)}”OK

你可以试试这个正则expression式: [^\W\d_][a-zA-Z]

 String string= "abcdef"; if(string.match("^[a-zA-Z]+$$")){ System.out.println("string only contains letters"); } 
 Pattern pattern = Pattern.compile("^[a-zA-Z]+$"); if (pattern.matcher("a").find()) { ...do something ...... }