2014-01-22 3 views
2

Я изучил Java примерно на 3 недели. Я видел заявления, как нижеКак использовать этот оператор «? I»

String str="I am a Member of MU"; 

str=str.replaceFirst("(?i)m", ""); 

В основном, функция вышеуказанных утверждений заменить (удалить) первый «м», игнорируя случай. Мне кажется, что «? I» - это своего рода оператор, чтобы игнорировать случай символа. Может ли кто-нибудь объяснить мне, как использовать этот «? I»? Я не могу найти подробный синтаксис «? I». Благодаря

+3

Вы ищете * регулярные выражения *. См. Http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html – Ingo

+0

В качестве [документации] (http://docs.oracle.com/javase/6/docs /api/java/lang/String.html#replaceFirst) указывает, что первым параметром является [регулярные выражения] (http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern. HTML). Вы можете видеть, что '? I' фактически включает флаги' i', в вашем случае регистр нечувствителен. – bvidal

+0

См. Это [учебник] (http://docs.oracle.com/javase/tutorial/essential/regex/). То, что вы смотрите, - это регулярное выражение (регулярное выражение), которое не является частью языка Java, а скорее определяется библиотеками. Регулярные выражения также используются библиотечными программами на других языках и встроены в некоторые языки. Синтаксис почти такой же, но есть варианты. – ajb

ответ

0

Это "Специальные конструкции" на lngo's link

(idmsuxU-idmsuxU?) - Ничего, но поворачивает матч флаги idmsux U на - от

Что значит в вашем случае

(? I) ничего не соответствует, но включает флаг i (без учета регистра).

Совпадение ничего не важно, так что вы не заменяете больше, чем просто m.

+0

Например, если Yoda является членом MU, результат '' Member of MU I am '' будет '' ember из MU I am''. Это просто означает «совпадение» с «игнорированием случая». – Radiodef

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