Требуется совпадение строки, в которой есть два одинаковых символа - PullRequest
0 голосов
/ 24 октября 2019

Полный новичок в Regex, мне нужно регулярное выражение, которое соответствует строкам, которые начинаются и заканчиваются одним и тем же символом, а между ними может быть что угодно (даже числа)

Я пробовал кое-что, но яя не могу заставить его соответствовать текстовым кейсам:

5 (true)
a (true)
b (true)
ab  (false)
aba (true)

"(\"|\')whatever\\1" - это то, что у меня есть, но оно не работает для всех строк

1 Ответ

0 голосов
/ 24 октября 2019

Использование:

^.$|^(.).*\1$

Случай строки из 1 символа обрабатывается специально, поскольку вы не можете сопоставить один и тот же символ дважды в шаблоне. Второй вариант помещает первый символ в группу захвата, а затем сопоставляет его в конце с обратной ссылкой.

DEMO

Другой способ обработки 1-регистр символов, сделав все после первого символа необязательным.

^(.)(?:.*\1)?$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...