Я пытаюсь сопоставить только строки с двумя последовательными согласными. но независимо от того, какой ввод я ввожу в myString, это никогда не оценивается как true, поэтому я должен предположить, что что-то не так с синтаксисом моего регулярного выражения. Любые идеи?
if (Pattern.matches("([^aeiou]&&[^AEIOU]){2}", myString)) {...}
Дополнительная информация:
- myString — это подстрока, состоящая не более чем из двух символов.
- Пробела нет, так как эта строка является результатом .split с разделителем пробелов.
- Я не беспокоюсь о специальных символах, так как программа просто объединяет и печатает результат, хотя, если вы хотите показать мне, как включить что-то вроде [bz]&&[^eiou] в свой ответ, я был бы признателен.
Редактировать: пройдя эти ответы и немного протестировав код, который я наконец использовал, был
if (myString.matches("(?i)[b-z&&[^eiou]]{2}")) {...}
&&
, вам нужно поместить пересечения в выражение в квадратных скобках.[a-z&&[^aeiou]]{2}
- person hwnd   schedule 26.02.2015