RegEx: URI части из текста - PullRequest
       6

RegEx: URI части из текста

3 голосов
/ 12 февраля 2011

все! У меня есть такой текст: «Некоторые тексты с uri http://test.com и другими словами». И мне нужно получить части URI, используя одно регулярное выражение.

Я пытаюсь это:

string text = "Some text with uri http://test.com and other words.";
string pattern = @"\b(\S+)://([^:]+)(?::(\S+))?\b"; 
MatchCollection matches = Regex.Matches(text, pattern); 

И это работает, когда я пишу "Некоторый текст с URI http://test.com" или" word1 http://test.com:5000 word2 ".

Где ошибка?

Ответы [ 2 ]

1 голос
/ 12 февраля 2011

Ваш второй модификатор + является жадным, поэтому он соответствует всему после http://, если не достигнет : или конца строки. Попробуйте это:

@"\b(\w+)://([^:]+?)(?::(\S+))?\b"
0 голосов
/ 12 февраля 2011

Это должно приблизить тебя ... Я все еще не совсем уверен, что ты хочешь получить ...

Если бы вы могли показать желаемые результаты, это помогло бы ...

\b(\S+)://([^: ]+)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...