2016-02-03 4 views
-3

Я хочу найти любую фразу, которая заканчивается или начинается с «Школа», «Политехнический», «Институт», «Университет».Regex для соответствия учебным заведениям

Примеры, которые должны быть приняты:

School of Information Technology 
Green View Secondary School 
University of Cambridge 
Institute of Business Management 

Ниже не должно быть принято:

Green View 
Cambridge Scholarship 
Newcastle Internship Programme 
etc 
+1

подсказка: вам не нужно регулярное выражение для этого. –

+4

Почему бы просто не использовать 'String :: startsWith (String)' и 'String :: endsWith (String)'? –

+0

@ T-Fowl Я получаю текст с большим количеством подробностей, например, по электронной почте, номеру телефона, адресу и т. Д. И я помещаю все это в метод регулярных выражений, как это требует остальная часть данных. после этого метод будет классифицировать различные данные в разные поля. –

ответ

0

Хорошо,

хорошо вы могли бы использовать:

String regex = "^(School|Polytechnic|Institute|University).*|.*(School|Polytechnic|Institute|University)$"; 
String input = "School of Information Technology"; 
boolean result = input.matches(regex); 

System.out.println(result); 

Чтобы решить разрыв строки:

public static void main (String[] args) throws java.lang.Exception { 
    String input = "School of Information Technology\nBen Corden"; 
    System.out.println(checkString(input)); 
} 

public static boolean checkString(String input) { 
    String regex = "^(School|Polytechnic|Institute|University).*|.*(School|Polytechnic|Institute|University)$"; 
    String[] lines = input.split("\n"); 
    for (int i = 0; i < lines.length; i++) { 
     if (lines[i].matches(regex) == true) { 
      return true; 
     } 
    } 
    return false; 
} 
+0

Спасибо за ваш ответ, это помогает. Тем не менее, я считаю, что это выражение игнорирует строки прерывания. Поэтому давайте скажем, что у меня есть «Сингапурский политехнический институт», а затем имя человека, например «Бен Корден», в следующей строке, это будет результат «Сингапурский политехнический институт Бен Корден» в качестве одной линии и отклонить этот результат. –

+0

Да, вы правы, вы можете попробовать раскол, см. Оригинальный ответ. –