Лучший способ перенаправить одну php-страницу для мобильных устройств с помощью PHP / Javascript

Вы можете создать регулярное выражение, чтобы сделать это для вас:

// pattern1 and pattern2 are String objects
String regexString = Pattern.quote(pattern1) + "(.*?)" + Pattern.quote(pattern2);

Это будет обрабатывать pattern1 и pattern2 как литералы, а текст между шаблонами будет записан в первая группа захвата . Вы можете удалить Pattern.quote() , если хотите использовать регулярное выражение, но я ничего не гарантирую, если вы это сделаете.

Вы можете добавить некоторую настройку того, как должно происходить совпадение добавив флаги к regexString.

  • Если вы хотите использовать совместимое с Unicode распознавание без учета регистра, добавьте (?iu) в начале regexString или поставьте флаг Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE на Pattern.compile .
  • Если вы хотите захватить контент, даже если две строки с разделителями появляются по строкам, добавьте (?s) до (.*?), то есть "(?s)(.*?)" , или поставьте флаг Pattern.DOTALL в Pattern.compile .

Затем скомпилируйте регулярное выражение, получите Matcher , проведите по спичкам и сохраните их в List (или любой Collection, это зависит от вас).

Pattern pattern = Pattern.compile(regexString);
// text contains the full text that you want to extract data
Matcher matcher = pattern.matcher(text);

while (matcher.find()) {
  String textInBetween = matcher.group(1); // Since (.*?) is capturing group 1
  // You can insert match into a List/Collection here
}

Код тестирования:

String pattern1 = "hgb";
String pattern2 = "|";
String text = "sdfjsdkhfkjsdf hgb sdjfkhsdkfsdf |sdfjksdhfjksd sdf sdkjfhsdkf | sdkjfh hgb sdkjfdshfks|";

Pattern p = Pattern.compile(Pattern.quote(pattern1) + "(.*?)" + Pattern.quote(pattern2));
Matcher m = p.matcher(text);
while (m.find()) {
  System.out.println(m.group(1));
}

Обратите внимание, что если вы ищете текст между foo и bar в этом входе foo text foo text bar text bar с помощью метода выше, вы получите одно совпадение, которое равно  text foo text .

13
задан keyser 29 October 2012 в 02:06
поделиться