我已经打破了我的头试图解决下面的问题,我将不胜感激每条评论或建议。
先决条件
HTML 文本
<div style="font-size:8pt; font-family: Calibri, sans-serif;">Some text here</div>
2)Powershell v.3
任务
解析给定文本并仅选择标签
方法
$text_to_parse = '<div style="font-size:8pt; font-family: Calibri, sans-serif;">Some text here</div>'
if($text_to_parse -match '</?div[^<>]*>'){$Matches | fl}
Name : 0
Value : <div style="font-size:8pt; font-family: Calibri, sans-serif;">
问题
1)如您所见,尽管有/?
量词,但它没有显示第二个匹配项 2)我明白,必须有“全球”锚,但即使在 MSDN 中我也找不到它:http: //msdn.microsoft.com/library /az24scfc.aspx
3)\G
即使我在开头添加了一个或多个字符的模式,锚也无法正常工作:
if($text_to_parse -match '\G<.*?/?div[^<>]*>'){$Matches | fl}
Name : 0
Value : <div style="font-size:8pt; font-family: Calibri, sans-serif;">`
问题
1)我做错了什么?我花了更多的 4 个小时试图弄清楚,但没有任何成功。2)Powershell中RegEx实现中是否有任何“全局”锚?3) 最后,如何只用正则表达式匹配两个 HTML 标签?我可以做这样的事情:
($text_to_parse -replace '\G<.*?/?div[^<>]*>',"").TrimEnd("</div>")
得到这个:
Some text here
但我想用正则表达式来做到这一点。
亲切的问候,尤里