正则表达式(2)–特殊字符 [:alnum:] [:alpha:]

 

正则表达式中有两个很重要的特殊字符就是”[ ]”。他们可以匹配”[]”之中出现过的字符,比如”/[az]/”可以匹配单个字符”a”或者”z”;如果把上面的表达式改成这样”/[a-z]/”,就可以匹配任何单个小写字母,比如”a”、”b”等等。
python例子
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import re
 pattern = re.compile(r([a-z]+) ([a-z]+), re.I) # re.I 表示忽略大小写
 m = pattern.match(Hello World Wide Web) 
print m # 匹配成功,返回一个 Match 对象

 

如果在”[]”中出现了”^”,代表本表达式不匹配”[]”内出现的字符,比如”/[^a-z]/”不匹配任何小写字母!并且正则表达式给出了几种”[]”的默认值,如下:

‘[:alnum:]’ 匹配任何字母
Alphanumeric characters: ‘[:alpha:]’ and ‘[:digit:]’.

‘[:alpha:]’ 匹配任何字母和数字
Alphabetic characters: ‘[:lower:]’ and ‘[:upper:]’.

‘[:blank:]’
Blank characters: space and tab.

‘[:cntrl:]’
Control characters. In ASCII, these characters have octal codes 000 through 037, and 177 (‘DEL’). In other character sets, these are the equivalent characters, if any.

‘[:digit:]’ 匹配任何数字
Digits: ‘0 1 2 3 4 5 6 7 8 9’.

‘[:graph:]’
Graphical characters: ‘[:alnum:]’ and ‘[:punct:]’.

‘[:lower:]’ 匹配任何小写字母
Lower-case letters: ‘a b c d e f g h i j k l m n o p q r s t u v w
x y z’.
‘[:print:]’
Printable characters: ‘[:alnum:]’, ‘[:punct:]’, and space.

‘[:punct:]’ 匹配任何标点符号
Punctuation characters: ‘! ” # $ % & ‘ ( ) * + , – . / : ; < = > ? @ [ \ ] ^ _ ‘ { | } ~’.

‘[:space:]’ 匹配空格符
Space characters: tab, newline, vertical tab, form feed, carriage
return, and space.

‘[:upper:]’ 匹配任何大写字母
Upper-case letters: ‘A B C D E F G H I J K L M N O P Q R S T U V W
X Y Z’.

‘[:xdigit:]’ 匹配任何16进制数字
Hexadecimal digits: ‘0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f’.

For example, ‘[[:alnum:]]’ means ‘[0-9A-Za-z]’, except the latter depends upon the ‘C’ locale and the ASCII character encoding, whereas the former is independent of locale and character set. (Note that the brackets in these class names are part of the symbolic names, and must
be included in addition to the brackets delimiting the bracket expression.)

[$]方括号内包含的是一个匹配字符范围,前面加上^,即是代表不匹配指定的字符范围。
$ereg代表的是一个变量,即$是变量的标志,这个式子的整体意思就是:
ereg代表的是一个具有以字母开头第二个是字母或数字的所有字符串。

常用正则:
  • 手机号码:/^1([3456789])[0-9]{9}$/
  • 身份证号码:/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
  • 固定电话:/^(0\d{2,3}-)?\d{7,8}$/
  • 检测协议:/^((https|http):\/\/)[^\s]+$/
  • 邮箱:/^[A-Za-z0-9]+([-_.][A-Za-z0-9]+)*@([A-Za-z0-9]+[-.])+[A-Za-z0-9]{2,5}$/
  • 统一社会信用代码: /[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/g
  • 用户名(允许字母、数字、下划线,只能字母开头,区分大小写):/^[a-z|A-Z][a-zA-Z0-9_]{4,14}$/
 

标签:

分类:SERVER | 发布:inzaghi | 评论:正则表达式(2)–特殊字符 [:alnum:] [:alpha:]已关闭评论 | 发表时间:2021-08-27 11:17
引用:点击这里获取该日志的TrackBack引用地址
上一篇:
下一篇:

Comments are closed.

Design By Inzaghi | 京ICP备16047555号-1