как захватить имя пользователя с RE? Например:grab username with regexp
мне нужно, чтобы захватить john_smith я попробовал этот [ \t]+(User)?[: \t]*([.]+)
, но не может получить его работу. Может ли кто-нибудь помочь?
как захватить имя пользователя с RE? Например:grab username with regexp
мне нужно, чтобы захватить john_smith я попробовал этот [ \t]+(User)?[: \t]*([.]+)
, но не может получить его работу. Может ли кто-нибудь помочь?
Try без ведущего [ \t]+
, что означает 'по крайней мере один'. Или используйте [ \t]*
, что означает «сколько угодно, может быть, ноль».
Слово «Пользователь» не выглядит необязательным, поэтому продолжайте работу с User[: \t]*
. Точка - Джокер и соответствует каждому персонажу.
Поэтому не имеет смысла включать его в группу. Остальная часть группы становится бессмысленной, и она ничего не добавляет к точке. Поэтому точка в группе означает буквальную точку. Вместо этого используйте только точку: (.+)
[ \t]*User[: \t]*(.+)
Это отлично работает, кроме одного. Если у меня есть 'User: john_smith.Some text' , то он возвращает' john_smith.Some text', мне нужно только 'john_smith' –
Тогда вам нужно определить, что может прервать имя. Точка кажется разумной, но, с другой стороны, подчеркивание тоже может быть. Если имена пользователей - это просто a-zA-Z0-9 и подчеркивание, тогда '[\ t] * Пользователь [: \ t] * ([a-zA-Z0-9 _] +)' решает вашу задачу. Может быть, немного улучшилось: '[\ t] * Пользователь:? [\ T] * ([a-zA-Z0-9 _] +)'. Если только буквальная точка может прервать имя, отрицательная группа сделает это: '[\ t] * Пользователь:? [\ T] * ([^.] +)'. –
Спасибо, это помогло отлично. –
Попробуйте что-то вроде этого:
/User:?\s*(\S+)/
В postrgres, было бы что-то вроде этого:
substring('User: john_smith' from 'User:?\s*(\S+)')
Мне нужно сделать это в Postgre sql, как это SUBSTRING ('Пользователь: john_smith', 'Пользователь: ? \ s * (\ S +) '), –
Я добавил пример, который я построил с помощью [postgresql документации по регулярным выражениям] (http://www.postgresql.org/docs/9.0/static/functions-matching.html) , – gpojd
Можете ли вы уточнить, какие формы допускаются для ввода? (Ваш RE требует, чтобы он начинался с одного или нескольких пробелов или вкладок, но ни один из ваших примеров не выглядит.) –