正则表达式匹配单个字符(3)详解程序员

正则表达式匹配单个字符


3.1 匹配单个字符

代码 功能
. 匹配任意1个字符(除了/n)
[ ] 匹配[ ]中列举的字符
[^ ] 排除[^ ]中列举的字符
/d 匹配数字,即0-9
/D 匹配非数字,即不是数字
/s 匹配空白,即 空格,tab键
/S 匹配非空白
/w 匹配非特殊字符,即a-z、A-Z、0-9、_、汉字
/W 匹配特殊字符,即非字母、非数字、非汉字

示例1: .

 
import re 
 
ret = re.match(".","M") 
print(ret.group()) 
 
ret = re.match("t.o","too") 
print(ret.group()) 
 
ret = re.match("t.o","two") 
print(ret.group()) 

运行结果:

M 
too 
two 

示例2:[]

import re 
 
# 如果hello的首字符小写,那么正则表达式需要小写的h 
ret = re.match("h","hello Python")  
print(ret.group()) 
 
 
# 如果hello的首字符大写,那么正则表达式需要大写的H 
ret = re.match("H","Hello Python")  
print(ret.group()) 
 
# 大小写h都可以的情况 
ret = re.match("[hH]","hello Python") 
print(ret.group()) 
ret = re.match("[hH]","Hello Python") 
print(ret.group()) 
ret = re.match("[hH]ello Python","Hello Python") 
print(ret.group()) 
 
# 匹配0到9第一种写法 
ret = re.match("[0123456789]Hello Python","7Hello Python") 
print(ret.group()) 
 
# 匹配0到9第二种写法 
ret = re.match("[0-9]Hello Python","7Hello Python") 
print(ret.group()) 
 
ret = re.match("[0-35-9]Hello Python","7Hello Python") 
print(ret.group()) 
 
# 下面这个正则不能够匹配到数字4,因此ret为None 
ret = re.match("[0-35-9]Hello Python","4Hello Python") 
# print(ret.group()) 

运行结果:

h 
H 
h 
H 
Hello Python 
7Hello Python 
7Hello Python 
7Hello Python 

示例3:/d

import re 
 
# 普通的匹配方式 
ret = re.match("嫦娥1号","嫦娥1号发射成功")  
print(ret.group()) 
 
ret = re.match("嫦娥2号","嫦娥2号发射成功")  
print(ret.group()) 
 
ret = re.match("嫦娥3号","嫦娥3号发射成功")  
print(ret.group()) 
 
# 使用/d进行匹配 
ret = re.match("嫦娥/d号","嫦娥1号发射成功")  
print(ret.group()) 
 
ret = re.match("嫦娥/d号","嫦娥2号发射成功")  
print(ret.group()) 
 
ret = re.match("嫦娥/d号","嫦娥3号发射成功")  
print(ret.group()) 

运行结果:

嫦娥1号 
嫦娥2号 
嫦娥3号 
嫦娥1号 
嫦娥2号 
嫦娥3

示例4:/D

import re 
 
match_obj = re.match("/D", "f") 
if match_obj: 
    # 获取匹配结果 
    print(match_obj.group()) 
else: 
    print("匹配失败") 

运行结果:

f 

示例5:/s

import re 
 
# 空格属于空白字符 
match_obj = re.match("hello/sworld", "hello world") 
if match_obj: 
    result = match_obj.group() 
    print(result) 
else: 
    print("匹配失败") 
 
 
 
# /t 属于空白字符 
match_obj = re.match("hello/sworld", "hello/tworld") 
if match_obj: 
    result = match_obj.group() 
    print(result) 
else: 
    print("匹配失败") 

运行结果:

hello world 
hello world 

示例6:/S

import re 
 
match_obj = re.match("hello/Sworld", "hello&world") 
if match_obj: 
result = match_obj.group() 
print(result) 
else: 
print("匹配失败") 
 
 
 
match_obj = re.match("hello/Sworld", "hello$world") 
if match_obj: 
result = match_obj.group() 
print(result) 
else: 
print("匹配失败") 

运行结果:

hello&world   
hello$world 

示例7:/w

 
import re 
 
# 匹配非特殊字符中的一位 
match_obj = re.match("/w", "A") 
if match_obj: 
    # 获取匹配结果 
    print(match_obj.group()) 
else: 
    print("匹配失败") 

执行结果:

A 

示例8:/W

# 匹配特殊字符中的一位 
match_obj = re.match("/W", "&") 
if match_obj: 
    # 获取匹配结果 
    print(match_obj.group()) 
else: 
    print("匹配失败") 

执行结果:

& 

小结

  • . 表示匹配任意1个字符(除了/n)
  • [ ] 表示匹配[ ]中列举的1个字符
  • /d 表示匹配一个数字,即0-9
  • /D 表示匹配一个非数字,即不是数字
  • /s 表示匹配一个空白字符,即 空格,tab键
  • /S | 匹配一个非空白字符
  • /w | 匹配一个非特殊字符,即a-z、A-Z、0-9、_、汉字
  • /W | 匹配一个特殊字符,即非字母、非数字、非汉字

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/1324.html

(0)
上一篇 2021年7月15日 22:57
下一篇 2021年7月15日 22:57

相关推荐

发表回复

登录后才能评论