Regex 正则表达式:在url中查找usename 我正在努力创建正确的正则表达式模式,以便在URL的中间找到用户名字符串。简言之,我在Powershell中工作,拉下一个网页,清除li元素。我把它写到一个文件中,所以我有一大堆这样的行: <LI><A HREF="/grouplist/expand-user/jimmysmith">Smith, Jimmy</A>&nbsp;

Regex 正则表达式:在url中查找usename 我正在努力创建正确的正则表达式模式,以便在URL的中间找到用户名字符串。简言之,我在Powershell中工作,拉下一个网页,清除li元素。我把它写到一个文件中,所以我有一大堆这样的行: <LI><A HREF="/grouplist/expand-user/jimmysmith">Smith, Jimmy</A>&nbsp;,regex,powershell,Regex,Powershell,我需要的字符串是jimmysmith部分,每行都有不同的用户名,长度不超过8个字母字符。我目前的模式是: (<(.|\n)+?>)|(&nbsp;) 我可以在代码中使用-replace$模式来获取Smith,Jimmy部分。我不知道我在做什么,我所得到的任何成功都是运气 在使用了几个在线正则表达式助手之后,我仍然无法理解如何只获取第三个/和之前的字符串,但不包括最后一个引号 谢谢你能给我的任何帮助 我建议您改用HTML解析器。尝试: $html = New-Object

我需要的字符串是jimmysmith部分,每行都有不同的用户名,长度不超过8个字母字符。我目前的模式是:

(<(.|\n)+?>)|(&nbsp;) 
我可以在代码中使用-replace$模式来获取Smith,Jimmy部分。我不知道我在做什么,我所得到的任何成功都是运气

在使用了几个在线正则表达式助手之后,我仍然无法理解如何只获取第三个/和之前的字符串,但不包括最后一个引号


谢谢你能给我的任何帮助

我建议您改用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
吉米斯密斯


我建议您改用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
吉米斯密斯


请尝试以下正则表达式:

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

此wll捕获标记的href属性中的最后一个字符串。

请尝试以下正则表达式:

[^\/"]+(?=">.*<\/A>)
此wll捕获标记的href属性中的最后一个字符串。

只是简单地替换冗余字符串

'<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/|`"\>.*"
两种方法都有效,经过测试。

只是简单地替换冗余字符串

'<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/|`"\>.*"

这两项工作都经过了测试。

我的问题的答案包含在塞尔吉奥的回答中


请尝试以下正则表达式:

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

这将捕获标签href属性中的最后一个字符串。

我的问题的答案包含在Sergio的回答中


请尝试以下正则表达式:

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

这将捕获标记的href属性中的最后一个字符串。

$html.links |选择nameprop.nameprop。我建议使用术语html解析器,因为用正则表达式解析html是一个糟糕的主意。另外:$html.links.nameprop相当于您所写的内容。@由于某种原因,它们不可纠正1,我不知道为什么。它应该是等效的,但它没有为我返回数据。哪个版本的PS?直到v3才添加自动枚举。除了你写的,我会使用|%nameprop,它相当于| ForEach Object-MemberName'nameprop'@TheIncorrigible1我使用的是5.1-我喜欢这个方法,不过我会编辑。它更干净。$html.links | select nameprop.nameprop还建议使用术语html解析器,因为用正则表达式解析html是一个糟糕的主意。另外:$html.links.nameprop相当于您所写的内容。@由于某种原因,它们不可纠正1,我不知道为什么。它应该是等效的,但它没有为我返回数据。哪个版本的PS?直到v3才添加自动枚举。除了你写的,我会使用|%nameprop,它相当于| ForEach Object-MemberName'nameprop'@TheIncorrigible1我使用的是5.1-我喜欢这个方法,不过我会编辑。它干净多了。我也测试过,效果很好。我将使用这个答案。谢谢。如果不使用任何字符串扩展,也不需要转义字符,请不要使用双引号。我也测试过,这很有效。我将使用这个答案。谢谢。如果您没有使用任何字符串扩展,也不需要转义字符,请不要使用双引号。如果答案解决了您的问题,请单击接受。如果答案解决了您的问题,请单击接受