Получение строковых параметров с помощью регулярного выражения

avatar
yagami cell
8 апреля 2018 в 01:52
64
2
0

Я пытаюсь получить регулярное выражение, которое может извлекать данные из

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

и я хочу найти это значение вот так...

977-1071

Я пытался использовать параметр регулярного выражения link this

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

Но я не могу найти строковое регулярное выражение 977-1071. Могу ли я попросить помощи в этом?

Источник
ggorlen
8 апреля 2018 в 02:02
0

Глядя на 7 в вашем регулярном выражении, мне непонятно, что вы пытаетесь сопоставить. Вы ищете какой-нибудь ddd-dddd, где ddd-dddd следует за Adm6000/ буквально, или что-то конкретно с 7s? Я смотрю на шаблон типа Adm6000\/(\d{3}-\d{4})\/.

Thm Lee
8 апреля 2018 в 02:07
0

\d{1,}-\d{1,} Разве это не применимо для записи номера дома?

Ответы (2)

avatar
Always Sunny
8 апреля 2018 в 02:00
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}`);
    });
}
avatar
The fourth bird
8 апреля 2018 в 08:54
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]);