re.search
请写一个正则表达式抽出下面字符串中的日期,id,以及status
### 请写一个正则表达式抽出下面字符串中的日期,id,以及status
import re
num = "now: 2020-10-16 23:55:54 id:UTF001 status: running"
rsp = re.search("now:\s+\d{4}-\d{2}-\d{2}.*id:UTF\d{3}\s+status:\s+\w+", num)
print(rsp)
------------------------------------------------------------------------------
输出效果:
D:\学习软件工具\pycharm\openstack-api\venv\Scripts\python.exe D:/学习软件工具/pycharm/openstack-api/venv/pachong/pachong001.py
<re.Match object; span=(0, 55), match='now: 2020-10-16 23:55:54 id:UTF001 status: r> #没有输出完是显示长度不够,正则表达式并没有错误
请写一个正则表达式表示使用group分组拿到目标内容
import re
num = "now: 2020-10-16 23:55:54 id:UTF000000001 status: running"
rsp = re.search("now:\s+(\d{4}-\d{2}-\d{2}).*id:(UTF\d+)\s+status:\s+(\w+)", num)
print(rsp.group(1),rsp.group(2),rsp.group(3)) #group(0)表示所有,group(1)表示第一个组以此类推
------------------------------------------------------------------------------
运行结果
D:\学习软件工具\pycharm\openstack-api\venv\Scripts\python.exe D:/学习软件工具/pycharm/openstack-api/venv/pachong/pachong001.py
2020-10-16 UTF000000001 running
- group([group1, …]):
获得一个或多个分组截获的字符串;指定多个参数时将以元组形式返回。group1可以使用编号也可以使用别名;编号0代表整个匹配的子串;不填写参数时,返回group(0);没有截获字符串的组返回None;截获了多次的组返回最后一次截获的子串。 - groups([default]):
以元组形式返回全部分组截获的字符串。相当于调用group(1,2,…last)。default表示没有截获字符串的组以这个值替代,默认为None。re.findall
贪婪模式与反贪婪模式:
正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符。例如:正则表达式”ab“如果用于查找”abbbc”,将找到”abbb”。而如果使用非贪婪的数量词”ab?”,将找到”a”
写一个正则表达式找出所有公司名称 ```python import re
test = ‘’’ pags:4,data:[{“code”:”123456”,”name”:”华为”,”date”:”2020-10-10T10:10:10”,”code”:”456789”,”name”:”中兴”,”date”:”2020-10-10T10:10:10”,”code”:”147258”,”name”:”小米”,”date”:”2020-10-10T10:10:10”,”code”:”258369”,”name”:”腾讯”,”date”:”2020-10-10T10:10:10”,”code”:”951357”,”name”:”阿里”,”date”:”2020-10-10T10:10:10”}] ‘’’
data = re.findall(‘ “name”:”.?” ‘,test) #对于要匹配的内容包含有汉字可以使用 .? 加个?号表示非贪婪模式
print(data) #re.findall匹配括号以内的
输出效果: D:\学习软件工具\pycharm\openstack-api\venv\Scripts\python.exe D:/学习软件工具/pycharm/openstack-api/venv/pachong/pachong001.py [‘“name”:”华为”‘, ‘“name”:”中兴”‘, ‘“name”:”小米”‘, ‘“name”:”腾讯”‘, ‘“name”:”阿里”‘]
```python
data = re.findall(' "date": "(\d{4}-\d{2}-\d{2}T10:10:10)" ',test) #列出上面的时间
data = re.findall(' "code": "(\d+)" ',test) #列出code的内容