次のような文字列があります。
123456-1/1234/189928/2323 (102457921)
私は取得したい102457921
。どうすれば正規表現でそれを達成できますか?
私が試してみました:
"123456-1/1234/189928/2323 (102457921)".replaceAll("(\\.*\()(\d+)(\))","$2");
しかし、うまくいきません。ヒントはありますか?
次のような文字列があります。
123456-1/1234/189928/2323 (102457921)
私は取得したい102457921
。どうすれば正規表現でそれを達成できますか?
私が試してみました:
"123456-1/1234/189928/2323 (102457921)".replaceAll("(\\.*\()(\d+)(\))","$2");
しかし、うまくいきません。ヒントはありますか?
どうですか
"123456-1/1234/189928/2323 (102457921)".replaceAll(".*?\\((.*?)\\).*", "$1");
さて、あなたはこれを行うことができます:
"123456-1/1234/189928/2323 (102457921)".replaceAll(".*\((.+)\)","$1");
次のように実行できます。
"123456-1/1234/189928/2323 (102457921)".replaceAll(".*?\(([^)]+)\)","$1");
「ダブル」replaceAll正規表現の簡略化はどうですか
"123456-1/1234/189928/2323 (102457921)".replaceAll(".*\\(", "").replaceAll("\\).*", "");
あなたはそのようなことを試すことができます:
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(')')));
それ以外の場合、適切な正規表現を生成するには、入力データの詳細に精通している必要があります。