从字符串中提取版本号,最佳方式?
Extract version number from string, optimal way?
我有那个字符串:
<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>
只是想了解您对处理此问题的最安全方法的意见。
仅供参考:我知道我可以使用 Invoke-Webrequest 来获取实际元素,但由于某种原因,该命令挂在这个特定的 google URL 上,所以我不得不凑合着获取带有 InternetExplorer.Application COM 对象的源代码。
将您的字符串转换为 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
您可以与 -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]
}
我有那个字符串:
<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>
只是想了解您对处理此问题的最安全方法的意见。
仅供参考:我知道我可以使用 Invoke-Webrequest 来获取实际元素,但由于某种原因,该命令挂在这个特定的 google URL 上,所以我不得不凑合着获取带有 InternetExplorer.Application COM 对象的源代码。
将您的字符串转换为 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
您可以与 -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]
}