2

この例から 58392 を抽出する正規表現は何でしょうか。

コロンとハッシュの間の数値は可変長になります

sip:58392#7638500@10.10.10.10

このような組み合わせを試しましたが、うまくいきませんでしたsip:(.*?)#/\1/

4

4 に答える 4

8

この表現を試してみてください

(?<=:).*?(?=#)

ゼロ幅アサーションの先読みと後読みを参照してください

于 2012-12-18T02:08:48.057 に答える
0

Python 2.7.3の場合:

>>> import re
>>> r = r"sip:(.*?)#"
>>> s = "sip:58392#7638500@10.10.10.10"
>>> re.findall(r,s)
['58392']

...できます。

正規表現の最後にあるものが何のためにあるのかわかりません/\1/-おそらくあなたが使用している正規表現の特定のフレーバーのためのものですが、それが問題だと思います。

于 2012-12-18T02:09:29.570 に答える
0

次はsip:58392#に一致し、任意の分割文字列メソッドによって、sip: と # を削除できると思います。

sip:.*?\#
于 2012-12-18T02:13:54.023 に答える
0

PHP の例を次に示します。

<?php

$string = 'sip:58392#7638500@10.10.10.10';
$pattern = '/^sip:([0-9]+)#/';
preg_match($pattern, $string, $matches);
echo "the number is : ", $matches[1];
于 2012-12-18T02:14:10.687 に答える