RegEx для соответствия N-значный плюс последовательные номера - PullRequest
2 голосов
/ 15 мая 2019

Я пытаюсь очистить входные строки, используя javascript на node.js.некоторые входные строки могут содержать номера телефонов (или случайную последовательность чисел), которые я хотел бы удалить.Например:

Строка ввода: Terrace 07541207031 RDL 18.02

после очистки Я хотел бы, чтобы строка была: Terrace RDL 18.02

Я хотел бы определить числа (скажем, больше чем4 цифры) и удалите его.

1 Ответ

3 голосов
/ 15 мая 2019

Это выражение , вероятно, соответствует желаемым входам.

(\s)([0-9]{4,})(\s?)

Если вы хотите сопоставить любые 4 цифры плюс цифры, вы можете просто удалить левый и правый пробел проверить границы:

([0-9]{4,})

Демонстрация JavaScript

const regex = /(\s)([0-9]{4,})(\s?)/gm;
const str = `Terrace 07541207031 RDL 18.02
Terrace 07541 RDL 18.02
Terrace 075adf8989 RDL 18.02
Terrace 075adf898 RDL 18.02
075898 RDL 18.02
Terrace RDL 98989https://regex101.com/r/FjZqaF/1/codegen?language=javascript`;
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}`);
    });
}

Тест производительности

Этот скрипт возвращает время выполнения вашей входной строки для выражения.

const repeat = 1000000;
const start = Date.now();

for (var i = repeat; i >= 0; i--) {
	const regex = /(.*\s)([0-9]{4,})(\s.*)/gm;
	const str = "Terrace 07541207031 RDL 18.02";
	const subst = `$1$3`;

	var match = str.replace(regex, subst);
}

const end = Date.now() - start;
console.log("YAAAY! \"" + match + "\" is a match ??? ");
console.log(end / 1000 + " is the runtime of " + repeat + " times benchmark test. ? ");

RegEx

Если это не было вашим желаемым выражением, вы можете изменить / изменить его выражения в regex101.com .

RegEx Circuit

Вы также можете визуализировать свои выражения в jex.im :

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...