python中如何提取字符串"123(456)"中的123
时间: 2024-05-02 07:16:24 浏览: 13
可以使用正则表达式提取:
```python
import re
text = "123(456)"
match = re.search(r"(\d+)\(", text)
if match:
num = match.group(1)
print(num) # 输出 123
else:
print("未匹配到数字")
```
正则表达式 `(\d+)\(` 匹配一个或多个数字加上一个左括号,`\d+` 匹配一个或多个数字,`()` 表示分组,`match.group(1)` 返回第一个分组的内容,即数字。
相关问题
python提取字符串中数字
可以使用正则表达式来提取字符串中的数字,例如:
```python
import re
string = 'abc123def456ghi789'
numbers = re.findall('\d+', string)
print(numbers)
```
输出:
```
['123', '456', '789']
```
其中,`\d` 表示匹配任意数字字符,`+` 表示匹配一个或多个数字字符,`findall` 函数返回所有匹配的结果。如果需要将结果转换为整数类型,可以使用 `map` 函数:
```python
numbers = list(map(int, numbers))
print(numbers)
```
输出:
```
[123, 456, 789]
```
python提取字符串中的数
有多种方法可以提取字符串中的数字,下面列举其中几种常用的方法。
1. 使用正则表达式:
使用re模块中的findall函数,传入一个正则表达式即可快速匹配出所有数字。例如:
```python
import re
text = "AB123CD456E789"
numbers = re.findall(r'\d+', text)
print(numbers)
```
输出:
```
['123', '456', '789']
```
2. 使用isdigit函数:
使用字符串的isdigit方法,遍历每个字符并检查是否为数字,如果是,则加入结果列表。例如:
```python
text = "AB123CD456E789"
numbers = []
for char in text:
if char.isdigit():
numbers.append(char)
print(''.join(numbers))
```
输出:
```
123456789
```
3. 使用isnumeric函数:
与isdigit类似,使用字符串的isnumeric方法,遍历每个字符并检查是否为数值字符,如果是,则加入结果列表。例如:
```python
text = "AB123CD456E789"
numbers = []
for char in text:
if char.isnumeric():
numbers.append(char)
print(''.join(numbers))
```
输出:
```
123456789
```
4. 使用ascii码:
遍历每个字符并检查其ascii码是否在0-9之间,如果是,则加入结果列表。例如:
```python
text = "AB123CD456E789"
numbers = []
for char in text:
if 48 <= ord(char) <= 57:
numbers.append(char)
print(''.join(numbers))
```
输出:
```
123456789
```