Я работаю над регулярным выражением с помощью JavaScript. Теперь я создал регулярное выражение, которое проверяет, есть ли в строке две или более одинаковых букв, следующих друг за другом. Я хотел бы создать регулярное выражение, которое проверяет, содержит ли слово / строка две или более одной конкретной буквы, независимо от того, находятся ли они друг за другом или только в одном слове / строке.
Он должен совпадать: драма и анаконда , но не совпадать: хромой , киви или дерево .
Это регулярное выражение в JS.
const str = "anaconda";
str.match(/[a]{2,}/);
2 ответа
Использовать
\w*(\w)\w*\1\w*
См. доказательство
ПОЯСНЕНИЕ
NODE EXPLANATION
--------------------------------------------------------------------------------
\w* word characters (a-z, A-Z, 0-9, _) (0 or
more times (matching the most amount
possible))
--------------------------------------------------------------------------------
( group and capture to \1:
--------------------------------------------------------------------------------
\w word characters (a-z, A-Z, 0-9, _)
--------------------------------------------------------------------------------
) end of \1
--------------------------------------------------------------------------------
\w* word characters (a-z, A-Z, 0-9, _) (0 or
more times (matching the most amount
possible))
--------------------------------------------------------------------------------
\1 what was matched by capture \1
--------------------------------------------------------------------------------
\w* word characters (a-z, A-Z, 0-9, _) (0 or
more times (matching the most amount
possible))
Мой мыслительный процесс был примерно таким:
- Слово может начинаться с любого алфавита
- Слово может оканчиваться любым алфавитом
- Подобные буквы могут иметь ноль или несколько алфавитов между ними
- Если какие-либо из его букв похожи и соответствуют критериям, указанным выше, примите слово
regex = /[a-z]*([a-z])[a-z]*\1+[a-z]*/
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.