正则表达式常见匹配内容

1、匹配中文字符

示例代码:

import re

s = '人生苦短,我学python!'
# s = s.encode('utf-8').decode('utf-8')
# s = s.decode('utf-8').encode('utf-8')

# 匹配中文
# 方法一
s_ch = ''
for i in s:
    if '\u4e00' <= i <= '\u9fa5':
        s_ch += i
print(s_ch)

# 方法二
aa = re.compile('[\u4e00-\u9fa5]')
bb = aa.findall(s)
print(bb)
cc = ''.join(bb)
print(cc)

# 方法三
dd = re.findall('[\u4e00-\u9fa5]', s)
print(dd)
ff = ''.join(dd)
print(ff)


运行结果:

2、匹配双字节字符(包括汉字在内)

示例代码:

import re

s = '人生苦短,我学python!'
# s = s.encode('utf-8').decode('utf-8')
# s = s.decode('utf-8').encode('utf-8')

# 匹配双字节字符(包括汉字在内)
# 方法一
aa = re.compile('[^\x00-\xff]')
bb = aa.findall(s)
print(bb)
cc = ''.join(bb)
print(cc)

# 方法二
dd = re.findall('[^\x00-\xff]', s)
print(dd)
ff = ''.join(dd)
print(ff)

运行结果:

3、匹配Email地址

示例代码:

import re

s = "人生苦短,我学python!my email is:123456789@qq.com"

# 匹配Email地址
# 方法一
aa = re.compile("[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?")
bb = aa.findall(s)
print(bb)

# 方法二
cc = re.findall("[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?",
                s)
print(cc)

运行结果:

4、匹配网址URL

示例代码:

import re

s = "人生苦短,我学python!my website is:https://www.baidu.com"

# 匹配网址URL
# 方法一
aa = re.compile("[a-zA-z]+://[^\s]*")
bb = aa.findall(s)
print(bb)

# 方法二
cc = re.findall("[a-zA-z]+://[^\s]*",
                s)
print(cc)

运行结果:

5、匹配网站title

示例代码:

import requests
import re

url = 'https://pz.wendu.com/'

response = requests.get(url)
data = response.text
# print(data)
res = re.findall(r'<title>(.*?)</title>', data)[0]
print(res)

运行结果:

6、匹配国内电话号码

示例代码:

import re

s = "人生苦短,我学python!my phone is:0101-8758521"

# 匹配国内电话号码
# 方法一
aa = re.compile("\d{3}-\d{8}|\d{4}-\d{7,8}")
bb = aa.findall(s)
print(bb)

# 方法二
cc = re.findall("\d{3}-\d{8}|\d{4}-\d{7,8}",
                s)
print(cc)

运行结果:

7、匹配手机号

示例代码:

import re

s1 = 'num:12345678900,name:dgw,phone:19876543210,age:25'
s2 = 'num:12345678900,name:dgw,phone:119876543210,age:25'

aa = re.compile(r'(?<=\D)1[3456789]\d{9}', re.S)
bb = aa.findall(s1)
print(bb)

cc = re.compile(r'(?<=\D)1[3456789]\d{9}', re.S)
dd = cc.findall(s2)
print(dd)

ee = re.compile(r'1[3456789]\d{9}', re.S)
ff = ee.findall(s2)
print(ff)

gg = re.compile(r'(?<=\d)1[3456789]\d{9}', re.S)
hh = gg.findall(s2)
print(hh)

运行结果:

8、 判断一个字符串中是否包含数值

示例代码:

import re


def has_number(string):
    pattern = re.compile(r'\d+')
    return bool(pattern.search(string))


# 测试
print(has_number('hello123'))  # True
print(has_number('hello'))  # False

        其中,\d 表示匹配任意数字,+ 表示匹配一个或多个数字。search 方法返回第一个匹配的对象,如果匹配成功,则返回 True。

运行结果;

9、判断一个字符串中是否包含非标准字符

示例代码:

import re


def has_nonstandard_char(string):
    pattern = re.compile(r'[&@#]')
    return bool(pattern.search(string))


# 测试
print(has_nonstandard_char('hello#world'))  # True
print(has_nonstandard_char('hello, world'))  # False

        其中,[&@#] 表示匹配字符集中的任意一个字符,即匹配 &、@ 或 # 中的任意一个。search 方法返回第一个匹配的对象,如果匹配成功,则返回 True。

运行结果:

匹配正则表达式中的汉字,可以使用以下的正则表达式:[\u4e00-\u9fa5。这个正则表达式可以匹配所有的中文字符。 [2另外,如果你需要匹配双字节字符,包括汉字在内,你可以使用正则表达式。这个正则表达式可以用来计算字符串的长度,因为一个双字节字符长度计2。所以,如果你要匹配两个汉字,可以使用[\u4e00-\u9fa5]{2}。 [2<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [正则表达式同时匹配中英文及常用正则表达式](https://download.csdn.net/download/weixin_38682026/14830120)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [匹配中文汉字的正则表达式介绍](https://download.csdn.net/download/weixin_38606076/13675512)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [零基础python爬虫48小时速成](https://download.csdn.net/download/weixin_36643308/88220343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值