0

次のような文字列があります。

123456-1/1234/189928/2323 (102457921)

私は取得したい102457921。どうすれば正規表現でそれを達成できますか?

私が試してみました:

"123456-1/1234/189928/2323 (102457921)".replaceAll("(\\.*\()(\d+)(\))","$2");

しかし、うまくいきません。ヒントはありますか?

4

5 に答える 5

5

どうですか

"123456-1/1234/189928/2323 (102457921)".replaceAll(".*?\\((.*?)\\).*", "$1");
于 2014-05-02T13:29:13.273 に答える
1

さて、あなたはこれを行うことができます:

"123456-1/1234/189928/2323 (102457921)".replaceAll(".*\((.+)\)","$1");
于 2014-05-02T13:29:31.597 に答える
0

次のように実行できます。

"123456-1/1234/189928/2323 (102457921)".replaceAll(".*?\(([^)]+)\)","$1");
于 2014-05-02T13:29:45.507 に答える
0

「ダブル」replaceAll正規表現の簡略化はどうですか

"123456-1/1234/189928/2323 (102457921)".replaceAll(".*\\(", "").replaceAll("\\).*", "");
于 2014-05-02T14:09:35.757 に答える
0

あなたはそのようなことを試すことができます:

var str = '123456-1/1234/189928/2323 (102457921)';
    console.log(str.replace(/[-\d\/ ]*\((\d+)\)/, "$1"));
    console.log((str.split('('))[1].slice(0, -1));
    console.log((str.split(/\(/))[1].replace(/(\d+)\)/, "$1"));
    console.log((str.split(/\(/))[1].substr(-str.length - 1, 9));
    console.log(str.substring(str.indexOf('(') + 1, str.indexOf(')')));

それ以外の場合、適切な正規表現を生成するには、入力データの詳細に精通している必要があります。

于 2014-05-02T16:59:59.717 に答える