Как разработать шаблон регулярных выражений? - PullRequest
0 голосов
/ 25 сентября 2019

Я хочу извлечь слова из цифр и букв из предложения, смешанного со специальными символами.Как создать шаблон регулярного выражения?

/[^\s|^~!@\#$%<>^&*\()\-=+_\’,.|^\\t]([a-zA-Z0-9]+)/g

Код выглядит следующим образом:

let str = `\ttdccb`;
let re = /[^\s|^\\t|^~!@\#$%<>^&*\()\-=+_\’,.]([a-zA-Z0-9]+)/g;
strArray = str.match(re);

Я ожидаю, что выход \ttdccb будет tdccb, но фактический вывод dccb.

обновление:

до

let str = `abcd 0001 \\thi\\t
HA
 ABC \\t\\ttag,
tag
 taag`

ожидание

["abcd", "0001", "hi", "HA", "ABC", "tag", "tag", "taag"]

фактическое

["abcd", "0001", "hi", "HA", "ABC", "ag", "ag", "aag"]

1 Ответ

0 голосов
/ 25 сентября 2019

У вас есть обратная косая черта + t комбинаций символов во входной строке.Вы хотите, чтобы все слова были свободны от \t 2-символьных комбинаций.Просто замените их каким-нибудь несловарным символом, скажем запятой, перед извлечением с помощью /\w+/g:

str.replace(/\\t/g,',').match(/\w+/g)

См. Демонстрационную версию JS:

var str = 'abcd 0001 \\thi\\t\nHA\n ABC \\t\\ttag,\ntag\n taag';
console.log(str.replace(/\\t/g,',').match(/\w+/g));
// => ["abcd", "0001", "hi", "HA", "ABC", "tag", "tag", "taag"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...