python正则表达式,空格可选?
时间: 2023-07-24 09:14:21 浏览: 140
如果你想让空格是可选的,你可以在正则表达式中使用 `?` 来表示零次或一次出现。对于空格,你可以使用 `\s?` 来表示一个可选的空格。
例如,如果你想匹配一个数字后面可能跟着一个可选的空格,你可以使用 `\d\s?`。
以下是一个示例代码,演示了如何使用可选的空格匹配:
```python
import re
# 原始字符串
input_string = "123 456"
# 使用正则表达式匹配数字后面的可选空格
pattern = r'\d\s?'
matches = re.findall(pattern, input_string)
# 输出匹配结果
for match in matches:
print(match.strip()) # 使用 strip() 方法去除可能存在的空格
```
输出将是:
```
1
2
3
4
5
6
```
在这个示例中,正则表达式模式 `\d\s?` 匹配一个数字后面可能跟着一个可选的空格。使用 `re.findall()` 方法来获取所有匹配的结果,并使用 `strip()` 方法去除可能存在的空格。
相关问题
Python正则表达式座机号码
在Python中,正则表达式(Regular Expression,简称regex或RE)是一种强大的文本处理工具,用于匹配和操作字符串模式。如果你想提取座机号码,一个常见的正则表达式模式可能包括:
```python
import re
# 示例座机号码的正则表达式
phone_regex = r"\b\d{3}[-.\s]?\d{3}[-.\s]?\d{4}\b"
def extract_phone_number(text):
pattern = re.compile(phone_regex)
matches = pattern.findall(text)
return matches
# 测试
text = "我的座机号是010-12345678,办公室电话是021.98765432"
matches = extract_phone_number(text)
print(matches) # 输出:['010-12345678', '021.98765432']
```
这个正则表达式会匹配形如`010-12345678`、`021.98765432`或类似格式的座机号码。注意,`r`前缀表示原始字符串,`\d`代表数字,`[-.\s]?`表示可选的短横线、点或空格。
阅读全文