0

SDPパッケージのメディア記述を抽出しようとしています。

私は次のような行を持っています

a=rtpmap:113 H264/90000

(その後は常にキャリッジリターンがあります)

a = rtpmap:[number] [whitespace]からキャリッジリターンまでのすべてが必要ですが、リターン自体はなく、次の正規表現を作成しましたが、これは機能しません。

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

私が好きなら

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

少なくとも結果は得られますが、rtpmapの後の数字は必ずしも3文字の長さではありません。+がここで機能しないのはなぜですか?

4

2 に答える 2

4

多くの正規表現エンジンは、任意または可変長のルックビハインドをサポートしていません。.NETはそうしますが、その点ではほとんど単独です。

あなたの場合、あなたは次のようなものを使うほうがよいはずです:

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

最初のキャプチャグループを使用します。

于 2012-04-04T11:12:48.053 に答える
0

代わりにこれを使用してください

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

于 2012-04-04T11:13:00.367 に答える