有这样的一个场景:存在这些字符串“Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 96000 Hz, 8.1, s16, 1536 kb/s”"Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 96000 Hz, 3.1, s16, 1536 kb/s","Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 96000 Hz, 5.0(side), s16, 1536 kb/s",编写一个正则表达式获取Hz后面的数字
时间: 2023-12-07 20:06:06 浏览: 84
可以使用如下正则表达式来匹配Hz后面的数字:
```
(?<=,\s)\d+(?=\sHz)
```
解释:
- `(?<=,\s)`:使用正向先行断言来匹配逗号和空格,表示匹配前面必须是逗号和空格。
- `\d+`:匹配一个或多个数字。
- `(?=\sHz)`:使用正向先行断言来匹配空格和Hz,表示匹配后面必须是空格和Hz。
完整代码示例:
```python
import re
string1 = "Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 96000 Hz, 8.1, s16, 1536 kb/s"
string2 = "Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 96000 Hz, 3.1, s16, 1536 kb/s"
string3 = "Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 96000 Hz, 5.0(side), s16, 1536 kb/s"
pattern = re.compile(r'(?<=,\s)\d+(?=\sHz)')
match1 = pattern.search(string1)
if match1:
print(match1.group()) # 输出 96000
match2 = pattern.search(string2)
if match2:
print(match2.group()) # 输出 96000
match3 = pattern.search(string3)
if match3:
print(match3.group()) # 输出 96000
```
阅读全文