Я пытаюсь создать регулярное выражение, нечувствительное к регистру. У меня есть следующие, но я не уверен, что это правильным или нет:Regex с префиксом, нечувствительным к регистру
String value1 = "97 ebt ue i ua so sufi iqc k";
String pattern1 = "(?=(\\b(?i:.*s.*)))(?=(\\b(?i:.*q.*)))";
В моем примере я пытаюсь найти соответствие pattern1
в value1
. Насколько я понимаю:
\\b
соответствует любому слову в строке:.*
и.*
делают случай нечувствительного
Это работает с некоторыми случаями, но с другими не получается. Я не могу понять эту проблему.
UPDATE:
Этот случай здесь возвращает истину, но она должна возвращать ложь. Дело в том, что должно быть слово, которое заканчивается s
, и другое, заканчивающееся q
, так как ничто не заканчивается ни одним из них, поэтому оно должно потерпеть неудачу.
Какой результат вы ищете? '\\ b' - это только граница слова, это не соответствует слову. '(? i)' можно использовать в начале только один раз, и весь шаблон будет нечувствительным к регистру. –
С какими случаями он работает и с которыми не справляется. Можете привести несколько примеров? – Siddhartha
Я обновил свой вопрос – omarsafwany