Я конвертирую из .NET в Java, и следующее регулярное выражение .NET завершается ошибкой.
(?<before>.{0,10})" + mSearchTerm + "(?<after>.{0,255})
Здесь есть две именованные группы, но названная часть не важна для меня.
В дополнение к ответу Алана Мура, предстоящий jdk7 будет поддерживать именованные группы в регулярных выражениях. Подробнее см. http://download -llnw.oracle.com / javase / 7 / docs / api / java / util / regex / Pattern.html .
Кроме того, если вы строите регулярное выражение из строки поиска, которая не является самим регулярным выражением, было бы лучше использовать Pattern.quote(searchString), чтобы все специальные символы правильно экранировались.
Pattern.quote(searchString)
Я вижу, что именованные группы не работают в Java, но вы, похоже, оставили некоторые кавычки. Попробуйте это:
Pattern p = Pattern.compile("(.{0,10})" + mSearchTerm + "(.{0,255})");