2014-01-14 3 views
0

Мне нужно сбежать более одного @ в строке или любом запятыми, точками.Повторное совпадение повторения символа ИЛИ одиночного символа

Пример:

Не действует: [email protected]@testtest,test[email protected],st[email protected],st

Действительно: [email protected][email protected]@st

Следующая модель делает именно то, что я хочу (он проверяет, содержит ли строка @@ или , или . так результатом является true/false):

/(@)\1+|[,.]/ 

но я не люблю | знак здесь.

Как исправить это, чтобы использовать только []? Или есть другой способ сделать это?

+0

Если что-то повторяется, его необходимо удалить? Я не могу понять шаблон – thefourtheye

+1

Вы не можете, потому что вам нужно «чередование» для достижения того, чего вы хотите, однако я бы написал его как '@ {2,} | [,.]' И забыл группу захвата – gwillie

+0

@thefourtheye Я обновил вопрос. Это правда/ложная проверка. – soborskyi

ответ

0

Мне не нравится | знак здесь. Как я могу исправить это, чтобы использовать только []?

Вы не можете. Использование | - единственный способ, если вы хотите иметь разные шаблоны для @ и других персонажей.

Вы можете немного упростить свое выражение. Например:

@@+|[,.] 
+0

Почему голос? – Qtax

Смежные вопросы