powershell - Powershell:从字符串中提取mediaid
问题描述
我想mediaid
从字符串中提取
"\u003cimage mediaid=\"{2EB3AFF5-24C6-4C1F-8957-37CBFCBED751}\" alt=\"Caulfield to Dandenong Level Crossing Removal\" height=\"\" width=\"\" hspace=\"\" vspace=\"\" /\u003e",
如何做呢?
解决方案
由于发布的问题中缺乏要求,可能需要某种正则表达式:
要mediaid
在这种情况下提取或在引用的 GUID 之前提取任何标识符名称,您可以执行以下操作:
$str = '"\u003cimage mediaid=\"{2EB3AFF5-24C6-4C1F-8957-37CBFCBED751}\" alt=\"Caulfield to Dandenong Level Crossing Removal\" height=\"\" width=\"\" hspace=\"\" vspace=\"\" /\u003e",'
$regex = [regex]'\S+(?==\\"{[-A-F0-9]+}\\")'
$regex.Match($str).Value
要提取 的值mediaid
,您可以执行以下操作:
$str = '"\u003cimage mediaid=\"{2EB3AFF5-24C6-4C1F-8957-37CBFCBED751}\" alt=\"Caulfield to Dandenong Level Crossing Removal\" height=\"\" width=\"\" hspace=\"\" vspace=\"\" /\u003e",'
$regex = [regex]'(?<=mediaid=)\S+'
$regex.Match($str).Value
解释:
\S+
: 匹配非空白字符一次或多次 (+
)(?=<something>)
: 积极前瞻<something>
但不捕捉角色- (?<=)
: Positive lookbehind for
` 但不捕获 [A-F0-9-]
:字符类匹配,包括大写到、零A
到F
九和-
(破折号)。请注意,这里强制使用大写,因为我们使用的是 .NET 类Regex
。通常,Windows PowerShell 不区分大小写,无需另外指定,例如$str -match '[A-F]'
匹配a-f
或A-F
.
推荐阅读
- angular - 如何从服务器响应中提取 json 对象的第二层属性
- ios - Apple Map 和 MKLocalSearch 的搜索结果不同
- python - Python - 删除行和previos行(匹配模式模式)
- sql - 将我的 SQL 数据库备份还原到 Azure 后,我的所有索引都被禁用
- ios - 是否允许在我们的应用程序中使用苹果自己的应用程序图标?
- smtp - 需要 smtp 中继解决方案
- android - 在 EditText 上调用 setText() 时会发生什么?
- java - Spring boot 2:使用 Flyway 时检测到明显的连接泄漏
- jquery - 属性以选择器开头 = 属性以选择器开头?
- git - Git:--git-dir 将所有文件显示为丢失