编写正则表达式逐行匹配txt文件类似以下的内容:903,952K: com.tencent.mm (pid 10322 / activities),将903952,com.tencent.mm,10322存入数组
时间: 2023-11-02 11:05:00 浏览: 181
好的,这是一个类似的问题,只是这次我们需要逐行匹配一个 `.txt` 文件中的内容。我们可以使用 Python 的文件操作函数 `open()` 和 `readlines()` 来读取文件中的每一行,然后使用正则表达式匹配每一行的内容。以下是一个可能的实现:
```python
import re
result = []
# 打开文件,读取每一行内容
with open('file.txt', 'r') as f:
lines = f.readlines()
# 使用正则表达式逐行匹配
for line in lines:
pattern = r'(\d+),(\d+)K:\s+(\S+)\s+\(pid\s+(\d+)'
match = re.match(pattern, line)
if match:
result.append([match.group(1) + match.group(2), match.group(3), match.group(4)])
print(result)
```
这段代码与上一段代码的区别在于,我们首先使用 `open()` 函数打开了一个名为 `file.txt` 的文件,并使用 `readlines()` 函数读取了文件中的每一行内容,然后遍历每一行内容,使用与之前相同的正则表达式进行匹配,并将匹配的结果添加到一个列表中。最后,我们将所有的匹配结果打印出来。
相关问题
编写正则表达式逐行匹配文件以下内容:903,952K: com.tencent.mm (pid 10322 / activities),将903952,com.tencent.mm,10322存入数组
好的,这是一个比较具体的问题,我可以给你一个正则表达式供你参考:
```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()` 方法获取匹配的结果。最后将匹配的结果存入一个列表中返回。
编写正则表达式匹配以下内容:903,952K: com.tencent.mm (pid 10322 / activities),将903,952K,com.tencent.mm,10322存入数组
好的,以下是匹配的正则表达式:`(\d+,\d+K):\s+(\S+)\s+\(pid\s+(\d+)`
这个正则表达式可以匹配类似于 `903,952K: com.tencent.mm (pid 10322 / activities)` 这样的字符串,将 `903,952K`,`com.tencent.mm`,`10322` 三个部分分别匹配出来。
以下是 Python 代码示例:
```python
import re
s = "903,952K: com.tencent.mm (pid 10322 / activities)"
pattern = r"(\d+,\d+K):\s+(\S+)\s+\(pid\s+(\d+)"
match = re.match(pattern, s)
if match:
groups = match.groups()
arr = [groups[0], groups[1], groups[2]]
print(arr) # 输出 ['903,952K', 'com.tencent.mm', '10322']
```
阅读全文