我有那个字符串:
<span class="cloud-browser-downloads__dl-row-chrome-container cloud-body-text__small">Chrome v. <span class="cloud-browser-downloads__dl-row-chrome-version">74.0.3729.131</span></span>
我只想要版本号。我想知道你们认为隔离它的最佳方法是什么。
现在我正在像这样通过REGEX进行操作:
-match "\d{1,}[\.]\d{1,}[\.]\d{1,}[\.]\d{1,}"
(1个或多个数字,点,1个或多个数字,点,1个或多个数字,点,1个或多个数字)
它工作得很好,但是如果他们要更改版本命名怎么办?
另一种查看方式是隔离
<span class="cloud-browser-downloads__dl-row-chrome-version">
和
</span>
只是在寻求最安全的方法来征求您的意见。
FYI:我知道我可以使用Invoke-Webrequest来获取实际元素,但是由于某些原因,该命令会挂在该特定的Google URL上,因此我不得不使用InternetExplorer.Application COM对象来获取源代码。
答案 0 :(得分:4)
将您的字符串转换为xml:
$XML = [XML]'<span class="cloud-browser-downloads__dl-row-chrome-container cloud-body-text__small">Chrome v. <span class="cloud-browser-downloads__dl-row-chrome-version">74.0.3729.131</span></span>'
> [version]$xml.span.span.'#text'
Major Minor Build Revision
----- ----- ----- --------
74 0 3729 131
答案 1 :(得分:1)
您可以与-match一起使用。
$str = "<span class=cloud-browser-downloads__dl-row-chrome-container cloud-body-
text__small>Chrome v. <span class=cloud-browser-downloads__dl-row-chrome-
version>74.0.3729.131</span></span>"
$regex = [regex] "\d{1,}[\.]\d{1,}[\.]\d{1,}[\.]\d{1,}"
$found = $str -match $regex
if ($found) {
$ip = $matches[0]
}