有这样的一个场景:存在这些字符串“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",java编写一个正则表达式获取Hz,后面的数字
时间: 2023-12-07 14:06:06 浏览: 89
可以使用以下正则表达式来匹配Hz后面的数字:
```java
Pattern pattern = Pattern.compile(".*Hz,\\s*([\\d.]+),\\s*.*");
Matcher matcher = pattern.matcher(inputString);
if (matcher.matches()) {
String hzValue = matcher.group(1);
// 对hzValue进行处理
} else {
// 匹配失败,处理异常情况
}
```
这个正则表达式会匹配"Hz,"后面的数字,其中"\\d+"表示数字,"+"表示至少出现一次,"[\\d.]"表示数字或小数点。这个正则表达式还考虑了可能存在空格的情况,使用了"\\s*"表示可能出现0个或多个空格。
相关问题
有这样的一个场景:存在这些字符串“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后面的数字
可以使用如下正则表达式来匹配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
```
Hardware PCM card 0 'USB PnP Audio Device -2' device 0 subdevice 0 Its setup is: stream : CAPTURE access : MMAP_INTERLEAVED format : S16_LE subformat : STD channels : 2 rate : 48000 exact rate : 48000 (48000/1) msbits : 16 buffer_size : 16384 period_size : 1024 period_time : 21333 tstamp_mode : ENABLE tstamp_type : MONOTONIC period_step : 1 avail_min : 1024 period_event : 0 start_threshold : 1 stop_threshold : 1073741824 silence_threshold: 0 silence_size : 0 boundary : 1073741824 appl_ptr : 0 hw_ptr : 0
这是关于一个硬件 PCM 卡的设置信息,具体来说是一个名为 "USB PnP Audio Device -2" 的设备,其子设备为 0,用于捕捉音频流。它使用的访问方式是 MMAP_INTERLEAVED,数据格式为 S16_LE,采样率为 48000 Hz,通道数为 2。缓冲区大小为 16384,周期大小为 1024,周期时间为 21333,时间戳模式为 ENABLE,时间戳类型为 MONOTONIC,周期步长为 1,最小可用周期数为 1024,周期事件为 0,启动阈值为 1,停止阈值为 1073741824,静音阈值为 0,静音大小为 0,边界为 1073741824,应用指针为 0,硬件指针为 0。
阅读全文