【发布时间】:2019-08-26 12:00:19
【问题描述】:
我需要过滤一个字符串,如果它包含三个字符串:
/A/ABC
A_ABC
Downloaded
我有两种类型的线条。全部包含Downloaded,但仅包含/A/ABC 或A_ABC
每个子字符串的左右都有空格。
如果一行包含Downloaded 和ABC,则匹配行的正确正则表达式是什么?
我要匹配 ABC 的最大问题是左侧的斜线或下划线。
我尝试了以下表达式:
'\bDownloaded\b + \b/A/ABC\b | \/ABC\b'
但是我没有收到匹配的行。也许有人可以轻松解决我的尝试。谢谢!
/A/ 和 A_ 只是示例。可能有任何其他字母或多个字母。我只需要知道线路中是否有 ABC。
要明确:我检查了几个other posts,它们与我的问题很接近,但最终无法解决我的问题。
【问题讨论】:
-
应该按这个顺序排列吗?
-
通常使用前瞻:
'^(?=.*/A/ABC\b)(?=.*\bA_ABC\b)(?=.*\bDownloaded\b)',如果您想以任何顺序检查字符串中的字符串。不要在/之前添加\b,除非您希望仅在字母、数字或_之后匹配。 -
伙计们请检查我的编辑,我解释我的问题有点错误。对不起!
-
如果
Downloaded后跟另外两个,则使用\bDownloaded\b.*(?:/A/ABC|\bA_ABC)\b'。请添加您要匹配的示例并避免匹配。 -
@Thefourthbird 请发布答案,我不确定,但仍然是 OP 需要的。
标签: regex powershell powershell-3.0