python正则表达式忽略空格
时间: 2023-07-09 14:47:07 浏览: 58
可以使用正则表达式中的`\s*`来匹配任意数量的空白字符(包括空格、制表符、换行符等),例如:
```python
import re
text = 'hello world'
pattern = re.compile('hello\s*world')
match = pattern.search(text)
if match:
print('匹配成功')
else:
print('匹配失败')
```
这段代码中,`\s*`表示匹配任意数量的空白字符,包括零个。所以,它可以匹配包含任意数量空格的字符串,例如`hello world`、`hello world`、`hello world`等。
相关问题
python正则表达式re之compile函数解析
Python的re模块提供了一系列操作正则表达式的方法,其中compile()函数是其中一个重要的方法。compile()函数可以将正则表达式编译成一个正则表达式对象,方便在后续的操作中重复使用。
compile()函数的语法如下:
```python
re.compile(pattern, flags=0)
```
其中,pattern表示要编译的正则表达式,可以是字符串或原始字符串;flags是可选参数,表示正则表达式的匹配模式,可以是多个标志位按位或(|)组合在一起,具体标志位如下:
- re.I:忽略大小写
- re.M:多行模式,改变^和$的行为
- re.S:点(.)匹配包括换行符在内的所有字符
- re.U:Unicode字符集模式
- re.X:忽略正则表达式中的空格和注释
compile()函数返回一个正则表达式对象,可以通过该对象调用match()、search()等方法进行匹配操作。例如:
```python
import re
pattern = re.compile(r'\d+')
match = pattern.match('123abc')
```
上述代码中,首先使用compile()函数将正则表达式编译成一个对象,然后使用match()方法进行匹配操作。
使用compile()函数编译正则表达式可以提高程序的效率,特别是需要多次使用同一个正则表达式进行匹配操作时。
正则表达式 读取"10 * 10"数据
如果您想使用正则表达式读取 "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()` 方法从匹配对象中提取捕获的组。