编写正则表达式逐行匹配文件以下内容:903,952K: com.tencent.mm (pid 10322 / activities),将903952,com.tencent.mm,10322存入数组
时间: 2023-11-02 20:05:00 浏览: 77
好的,这是一个比较具体的问题,我可以给你一个正则表达式供你参考:
```python
import re
line = "903,952K: com.tencent.mm (pid 10322 / activities)"
pattern = r'(\d+),(\d+)K:\s+(\S+)\s+\(pid\s+(\d+)'
match = re.match(pattern, line)
if match:
result = [match.group(1) + match.group(2), match.group(3), match.group(4)]
print(result)
```
解释一下这个正则表达式的含义:
- `(\d+)`: 匹配一个或多个数字,并将其作为第一个捕获组;
- `,`: 匹配逗号;
- `(\d+)K`: 匹配一个或多个数字,后面紧跟着大写字母 "K",并将其作为第二个捕获组;
- `:\s+`: 匹配冒号和一个或多个空格;
- `(\S+)`: 匹配一个或多个非空白字符(即应用程序的名称),并将其作为第三个捕获组;
- `\s+\(pid\s+`: 匹配一个或多个空格,后面紧跟着字符串 "(pid",再匹配一个或多个空格;
- `(\d+)`: 匹配一个或多个数字,并将其作为第四个捕获组;
- `\s+\/.*`: 匹配一个或多个空格,后面紧跟着一个斜杠和任意字符,表示匹配 PID 后面的内容。
在代码中,我们使用 `re.match()` 函数进行逐行匹配,并使用 `group()` 方法获取匹配的结果。最后将匹配的结果存入一个列表中返回。
阅读全文