0

我尝试提取 SDP 包的媒体描述。

我有一条线

a=rtpmap:113 H264/90000

(之后总是有回车)

我想要 a=rtpmap:[number][whitespace] 之后的所有内容,直到回车,没有返回本身并构造了以下 Regex,它不起作用:

(?<=(a=rtpmap:[0-9]+\s)).*(?=\r)

如果我喜欢

(?<=(a=rtpmap:[0-9]{3}\s)).*

我至少得到了一个结果,但 rtpmap 之后的数字并不总是 3 个字符长。为什么 + 在这里不起作用?

4

2 回答 2

4

许多正则表达式引擎不支持任意长度或可变长度的lookbehind。.NET 可以,但在这方面它几乎是唯一的。

在您的情况下,您最好使用以下内容:

a=rtpmap:\d+ ([^\r]+)

并使用第一个捕获组。

于 2012-04-04T11:12:48.053 回答
0

改用这个

(?<=(a=rtpmap:(\d+)\s)).*

于 2012-04-04T11:13:00.367 回答