正则表达式不仅仅是python语言中的一个表现,可以说他在任何语言中都可以用来匹配字符串。比如我们平时用的邮件或是电话号码区号判断等等。虽然用split('@")也不失为一种办法,但是明显把简单问题复杂化了。
在判断一个字符串是否可以使用正则表达式来解决:
1)研究表达式的特点。比如邮件@后面表示域名。
2)使用正则表达式来精确描述。
在用正则表达式的时候约定:
- 用
\d
可以匹配一个数字,\w
可以匹配一个字母或数字。 比如‘00\d’可以匹配‘007’(以下只是举例并不唯一) .
可以匹配任意字符,除了\n。 比如‘ab.’可以匹配'abc'- 用
*
表示任意个字符(包括0个),用+
表示至少一个字符,用?
表示0个或1个字符,用{n}
表示n个字符,用{n,m}
表示n-m个字符。比如匹配三个数字‘\d{3}’可以匹配'123' A|B
可以匹配A或B,^
表示行的开头,$
表示行的结束.举个栗子:‘^\d’可以匹配以数字开头的字符串- 连接,用于指定一个字符的范围。A-Z、a-z 或者 0-9 分别用于表示大写字母、小 写字母和数值数字。
- 在匹配的过程中默认采取贪婪匹配,也就是尽可能的匹配更多的。比如
re.match(r'^(\d+)(0*)$', '102300').groups() 输出为:('102300',''