Регулярные выражения и соответствующие URL с метасимволами - PullRequest
2 голосов
/ 26 марта 2010

У меня проблемы с поиском регулярного выражения, соответствующего следующей строке.

Korben;http://feeds.feedburner.com/KorbensBlog-UpgradeYourMind?format=xml;1

Одна проблема - избежать знака вопроса. Похоже, что сопоставитель шаблонов в Java не принимает \? в качестве допустимой escape-последовательности, но также не работает с тестером на myregexp.com

Вот что у меня есть:

([a-zA-Z0-9])+;http://([a-zA-Z0-9./-]+);[0-9]+

Есть предложения?

Редактировать: первоначальное намерение состояло в том, чтобы сопоставить все URL-адреса, которые можно найти после первой точки с запятой.

Ответы [ 4 ]

3 голосов
/ 26 марта 2010

Если вы помещаете выражение в строку, вам также необходимо экранировать «\».То есть:

String expr = "([a-zA-Z0-9])+;http://([a-zA-Z0-9./\\-\\?]+);[0-9]+";

Вам также нужно экранировать «-», если это не последний символ в конструкции класса символов ([...]).

1 голос
/ 26 марта 2010
([a-zA-Z0-9]+);http://([a-zA-Z0-9./-]+)(\?[^;]+);([0-9]+)

Работает для меня на этом сайте RexExp Editor.

1 голос
/ 26 марта 2010

Возможно, вам нужно избежать обратной косой черты, если ваше выражение находится в строке. Что-то вроде "\\?"

1 голос
/ 26 марта 2010

[?] соответствует "?"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...