2016-03-17 5 views
-3
public class StringMatchesCaseInsensitive 
{ 
    public static void main(String[] args) 
    { 
     String stringToSearch = "Four score and seven years ago our fathers ..."; 

     // this won't work because the pattern is in upper-case 
     System.out.println("Try 1: " + stringToSearch.matches(".*SEVEN.*")); 

     // the magic (?i:X) syntax makes this search case-insensitive, so it returns true 
     System.out.println("Try 2: " + stringToSearch.matches("(?i:.*SEVEN.*)")); 
    } 
} 

Блок кода выше, чем он является; пример нечувствительного к регистру поиска. Но меня это больше всего интересует: "?i:.*SEVEN.*";.Неисправность метода Java Case Разбивка и пояснение

Я знаю, что ?:. - это синтаксис без учета регистра. Но как насчет .*, который инкапсулирует SEVEN? Что оно делает?

Где я могу узнать больше об ., * и .* модификаторах regex?

Заранее благодарен

ответ

1

Ниже приведены обозначения этих символов.

  • . предназначенный для обозначения любых символов, кроме новой строки. Если используется с флагом s, он также соответствует новой строке.

  • * - квантификатор, который сообщает zero or many.

  • .* скажет zero or many characters.

Вы можете прочитать о них на