2012-04-13 2 views
0

Я пытаюсь извлечь некоторые данные из URL-адресов в файл LOG, и я почти там, но последняя часть, на которую я застрял.Regex для захвата строк с пробелом в конце

Вот регулярное выражение я придумал до сих пор

(\?.*\s+) 

Пример URL, с которыми я работаю

json?userId=1234&[email protected] HTTP/1.1 

И я хочу, чтобы вытащить

userId=1234&[email protected] 

Через несколько строк похожих строк URL. Регулярное выражение выше получает нужный материал в начале, но не останавливается после пробела. Что мне не хватает, чтобы он не включал? и закончить в белом пространстве правильно?

Редактировать: Уточненный вопрос.

ответ

0

Это работает в sed.

echo "json? UserId = 1234 & [email protected] HTTP/1.1" | sed 's /.*? \ (. * \) \ s. * $/\ 1/

вы также можете попробовать. (\? [^ \ S] +) сопоставить столько символов пробела после a?

+0

Я использовал (\? [^ \ S] +), но есть ли способ НЕ включать?, Тестируя его здесь, http://regexpal.com/ –

1

Я использовал, чтобы сделать это таким образом:

\?([^ ]*) -> \1 

Я не знаю, реализацию, но это «работает» на http://regexpal.com/ (этот тестер не заменяет)

Edit: забыла «? "

Смежные вопросы