使用正则表达式获取字符串参数

时间:2018-04-08 01:52:02

标签: javascript regex

试图获得正则表达式 像这样

BAYARPLN ke 116160029354,SUKSES。 Hrg:84.822。 SN:TGK IMUM M SAMIN / R1 / 450 / MAR,APR / Rp.89222 / Adm6000 / 977-1071 / 047421CA414149E5CEC5。萨尔多:7

我希望找到这样的价值...... 977-1071

我尝试使用参数regex链接 “/(Adm6000)([^ \ 7] +)/”

但我找不到字符串正则表达式977-1071 可以帮助这个

2 个答案:

答案 0 :(得分:0)

你尝试过这样的吗?请参阅正则表达式https://regex101.com/r/tccJ42/1



const regex = /\d+\-\d+/g; //use \d{3}\-\d{4} if you've digit limit
const str = `BAYARPLN ke 116160029354, SUKSES. Hrg: 84.822. SN: TGK IMUM M SAMIN/R1/450/MAR,APR/Rp.89222/Adm6000/977-1071/047421CA414149E5CEC5. Saldo: 7`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}




答案 1 :(得分:0)

如果您希望在977-1071之后匹配/Adm6000/,则可以先匹配/Adm6000/,然后在组中捕获,而不是正斜杠一次或多次([^/]+)

\/Adm6000\/([^/]+)

您的值977-1071将位于已捕获的第1组:



const regex = /Adm6000\/([^/]+)/;
const str = `BAYARPLN ke 116160029354, SUKSES. Hrg: 84.822. SN: TGK IMUM M SAMIN/R1/450/MAR,APR/Rp.89222/Adm6000/977-1071/047421CA414149E5CEC5. Saldo: 7`;
let match = regex.exec(str);
console.log(match[1]);