Я сопоставляю для части имени пользователя в URL-адресах профиля Twitter - например. http://www.twitter.com/joebloggsregex, чтобы соответствовать любой из форм URL-адреса
В настоящее время я успешно использую http://www.twitter.com/ (\ W +)
Но, в некоторых случаях исходных URL-адрес в формате http://www.twitter.com/@joebloggs
Это не нужно, но мне еще нужно найти " joebloggs "все равно. Поэтому мне нужно сопоставить либо формат без @, либо с помощью @.
Я пробовал различные методы, используя трубу или вертикальную планку.
Спасибо.
Если вы берете @ из захвата, то он всегда будет получить "joebloggs" (независимо от того, наличие @): '^ http: \/\/www \ .twitter \ .com \/@? (\ w +)' – nils
Я не был уверен, что '@' должно быть в захваченном тексте или нет , Но да, я согласен, что если намерение всегда захватывает 'joebloggs', тогда регулярное выражение должно быть:'^http: \/\/www \ .twitter \ .com \/@ (? \ W +) ' – anubhava
С первым ответом матчи закончились в том числе @. Мне нужно это _stripped_, где оно находится в URL-адресе. Вторые ответы работают. Спасибо. Как я могу понять, что происходит в regex здесь ...? 1)^соответствует тому, где http://www.twitter.com/ - начало строки? 2) Вам нужно избегать периода? 3) Я не полностью понимаю логику @ (? \ W +) –