正则表达式 读取"10 * 10"数据
时间: 2023-12-27 21:03:16 浏览: 26
如果您想使用正则表达式读取 "10 * 10" 数据,您可以使用以下表达式:
```python
import re
data = "10 * 10"
pattern = r"(\d+)\s*\*\s*(\d+)"
match = re.search(pattern, data)
if match:
num1 = int(match.group(1))
num2 = int(match.group(2))
print(num1, num2)
else:
print("No match found.")
```
这个表达式可以匹配 "10 * 10","10*10" 或者 "10 * 10" 这样的格式,忽略了空格和其他的空白字符。其中,`(\d+)` 表示匹配一个或多个数字字符,`\s*` 表示匹配零个或多个空格字符,`\*` 表示匹配一个 "*" 字符。`re.search()` 函数用于在字符串中搜索与模式匹配的第一个位置,并返回一个匹配对象。如果找到匹配,则使用 `group()` 方法从匹配对象中提取捕获的组。
相关问题
用正则表达式读取文件的第二列数据
可以使用以下正则表达式来读取文件的第二列数据:
```python
import re
with open('file.txt', 'r') as f:
data = f.read()
second_column = re.findall(r'^\S+\s+(\S+)', data, re.MULTILINE)
print(second_column)
```
解释一下正则表达式:
- `^` 匹配行的开始位置
- `\S+` 匹配一个或多个非空白字符,也就是第一列数据
- `\s+` 匹配一个或多个空白字符
- `(\S+)` 匹配一个或多个非空白字符,并将其作为一个分组,也就是第二列数据
所以 `r'^\S+\s+(\S+)'` 匹配每行的第一个非空白字符之后的一个或多个空白字符以及第二列数据,并将第二列数据作为一个分组。使用 `re.MULTILINE` 标志可以使 `^` 匹配每行的开始位置。最后使用 `re.findall()` 函数来查找所有匹配的结果。
用正则表达式读取csv文件的第一列数据
可以使用以下正则表达式来读取csv文件的第一列数据:
```python
import re
with open('file.csv', 'r') as f:
data = f.read()
first_column = re.findall(r'^([^,]+),', data, re.MULTILINE)
print(first_column)
```
解释一下正则表达式:
- `^` 匹配行的开始位置
- `[^,]+` 匹配除逗号以外的一个或多个字符
- `,` 匹配逗号
所以 `r'^([^,]+),'` 匹配每行的第一个逗号之前的内容,也就是第一列数据。使用 `re.MULTILINE` 标志可以使 `^` 匹配每行的开始位置。最后使用 `re.findall()` 函数来查找所有匹配的结果。