Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式过滤掉特定字符串后面的特征_Regex_Powershell - Fatal编程技术网

Regex 正则表达式过滤掉特定字符串后面的特征

Regex 正则表达式过滤掉特定字符串后面的特征,regex,powershell,Regex,Powershell,关于正则表达式,这不是我的第一个问题,但是我仍然在努力让表达式按照我的意愿工作 我有一行不同信息的结构化文本。我只想保留两个特性连接器:和E_DE_HH: 让我提供一个文本行示例: [10:26:33]: Connector: 8965 Info1: 8 Info2: 8 Info3: 4 E_DE_HH: 6000 Info4: 99 输出应为: 8965 6000 哪个表达式可以为我提供正确的输出?我试图替换除了命名特征后面的数据之外的所有内容,但这会过滤掉所有内容。我对这些表达感到困惑

关于正则表达式,这不是我的第一个问题,但是我仍然在努力让表达式按照我的意愿工作

我有一行不同信息的结构化文本。我只想保留两个特性
连接器:
E_DE_HH:

让我提供一个文本行示例:

[10:26:33]: Connector: 8965 Info1: 8 Info2: 8 Info3: 4 E_DE_HH: 6000 Info4: 99
输出应为:

8965 6000
哪个表达式可以为我提供正确的输出?我试图替换除了命名特征后面的数据之外的所有内容,但这会过滤掉所有内容。我对这些表达感到困惑


谢谢你的帮助

您的筛选器可以是:
*连接器:([0-9]*).*E_DE_HH:([0-9]*).
,而您的替换将是:
\1\2


查看此示例。

您可以对字符串使用
-match
运算符,然后使用
$matches
变量替换匹配的组

PS Y:\> '[10:26:33]: Connector: 8965 Info1: 8 Info2: 8 Info3: 4 E_DE_HH: 6000 Info4: 99' -match 'Connector: (\d*).*E_DE_HH: (\d*)'
True

PS Y:\> "$($matches[1]) $($matches[2])"
8965 6000

链接看起来不错,是否可以省略前面的时间?我不需要它@MIke_H Updated我不是powershell专家,但可能使用
$1
$2
而不是
\1
\2
。请参阅,由于powershell对空格非常挑剔,这是最后一个正确的正则表达式,对我来说运行良好
*ConnID:\s([0-9]*).\sE\u MAX\u ENTRIES:\s([0-9]*).
这也是一个好方法。非常感谢。