Простая проблема регулярных выражений, которую я просто не могу понять - PullRequest
0 голосов
/ 13 декабря 2010

У меня довольно простая проблема, мне нужно разобрать эту строку:

"user_id" => "BXoVWYg-T_QS"

И захватить только BXoVWYg-T_QS

Я до сих пор использовал регулярные выражения, чтобы захватить так многоиз гораздо более крупной строки, но я не могу понять, как объяснить это только содержимым строки user_id

Это регулярное выражение, которое у меня есть:

"user_id" => ".*"

Пожалуйста, помогите!

Обновление У меня есть строка html, которую я пытаюсь проанализировать для приложения для iPhone в target-c.Если я смогу просто отключить синтаксис регулярных выражений, мои проблемы будут решены

Ответы [ 3 ]

1 голос
/ 13 декабря 2010

Вы должны указать свой захват с помощью таких символов:

"user_id" => "(.*)"

Затем вы можете найти это совпадение.Используете ли вы JavaScript, Perl, C #, ???

1 голос
/ 13 декабря 2010

Проблема в том, что .* является жадным - поэтому он захватывает все до последнего доступного " в вашей строке / строке (в зависимости от используемого вами режима).

Вам нужно либо:

A) Сделайте регулярное выражение нежадным. .*? будет делать это на некоторых платформах.
B) Специально исключить " из списка символов, которые вы хотите сопоставить: "user_id" => "([^"]*)" - это то, что вам нужно.

1 голос
/ 13 декабря 2010
"user_id" => "([^"]*)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...