Regex: Найти имя пользователя внутри URL - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь создать правильный шаблон REGEX, чтобы найти строку имени пользователя в середине URL-адреса. Короче говоря, я работаю в Powershell, работаю над веб-страницей и удаляю элементы "li". Я пишу это в файл, поэтому у меня есть несколько строк, как это:

<LI><A HREF="/grouplist/expand-user/jimmysmith">Smith, Jimmy</A>&nbsp;

Строка, которая мне нужна, это часть "jimmysmith", и у каждой строки будет свое имя пользователя, не более восьми буквенных символов. Моя текущая модель такова:

(<(.|\n)+?>)|(&nbsp;) 

и я могу использовать шаблон "-replace $" в своем коде, чтобы получить часть "Смит, Джимми". Я понятия не имею, что я делаю, и любой успех в получении того, что я получил, был счастливой случайностью.

После использования нескольких онлайн-помощников регулярных выражений я все еще застрял на том, как просто получить "строку после третьего" / "и до, но не включая последнюю цитату.

Спасибо за любую помощь, которую вы можете оказать мне.

Ответы [ 4 ]

0 голосов
/ 07 мая 2018

Ответ на мой вопрос содержал в этом ответе Серхио.

Попробуйте следующее регулярное выражение:

[^\/"]+(?=">.*<\/A>)

Это будет захватывать последнюю строку в атрибуте href тега <a>.

0 голосов
/ 04 мая 2018

Попробуйте следующее регулярное выражение:

[^\/"]+(?=">.*<\/A>)

Это будет захватывать последнюю строку в атрибуте href тега <a>.

0 голосов
/ 04 мая 2018


Просто чтобы заменить лишние строки.

'<LI><A HREF="/grouplist/expand-user/jimmysmith">Smith, Jimmy</A>&nbsp;' -replace ".*user/|`"\>.*"

Если у вас несколько строк, попробуйте это:

'<LI><A HREF="/grouplist/expand-user/jimmysmith">Smith, Jimmy</A>&nbsp;' -replace "^\<LI.*user/|`"\>.*"

Обе работы, проверено.

0 голосов
/ 04 мая 2018

Я предлагаю вам вместо этого использовать анализатор HTML. Попробуйте:

$html = New-Object -ComObject "HTMLFile"
$source = '<LI><A HREF="/grouplist/expand-user/jimmysmith">Smith, Jimmy</A>&nbsp;'
$html.IHTMLDocument2_write($source)
$html.links | % nameprop

* 1005 Джимми Смит *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...