我尝试提取SDP包的媒体描述。
我有一行像
a=rtpmap:113 H264/90000
(之后总是有回车)
我希望a = rtpmap之后的所有内容:[number] [whitespace]直到回车,没有返回本身并构造了以下正则表达式,这不起作用:
(?<=(a=rtpmap:[0-9]+\s)).*(?=\r)
如果我喜欢
(?<=(a=rtpmap:[0-9]{3}\s)).*
我至少得到了一个结果,但是rtpmap之后的数字并不总是3个字符。为什么不在这里工作?
答案 0 :(得分:4)
Many regex engines do not support arbitrary- or variable-length lookbehind. .NET确实如此,但在这方面它几乎是独一无二的。
在您的情况下,您应该更好地使用以下内容:
a=rtpmap:\d+ ([^\r]+)
并使用第一个捕获组。
答案 1 :(得分:0)
改为使用
(小于=(α= rtpmap:(\ d +)\ S))。*