Регулярное выражение .NET в Java - PullRequest
1 голос
/ 29 июля 2010

Я конвертирую из .NET в Java, и следующее регулярное выражение .NET завершается ошибкой.

(?<before>.{0,10})" + mSearchTerm + "(?<after>.{0,255})

Здесь есть две именованные группы, но названная часть не важна для меня.

Ответы [ 2 ]

2 голосов
/ 29 июля 2010

В дополнение к ответу Алана Мура, предстоящий jdk7 будет поддерживать именованные группы в регулярных выражениях. Подробнее см. http://download -llnw.oracle.com / javase / 7 / docs / api / java / util / regex / Pattern.html .

Кроме того, если вы строите регулярное выражение из строки поиска, которая не является самим регулярным выражением, было бы лучше использовать Pattern.quote(searchString), чтобы все специальные символы правильно экранировались.

2 голосов
/ 29 июля 2010

Я вижу, что именованные группы не работают в Java, но вы, похоже, оставили некоторые кавычки. Попробуйте это:

Pattern p = Pattern.compile("(.{0,10})" + mSearchTerm + "(.{0,255})");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...