我有以下日志字符串,我只需要从它们那里获取MedSoftware
部分,这意味着
.com
后- 在第一次发生
之前
SERVERNAME2018-03-08 18:40:28 文件:"x:_default\app.address.com\MedSoftware.data\BackEnd.Technical.Dictionaries.Service-180308182311\Web.config", 名称:"dictionaries_data_product", CS: "###connectionStrings.dictionaryionariesdataproduct.connectionString" info: 初始化字符串的格式不符合从索引 0 开始的规范。 6069
现在我的正则表达式看起来像这样:
((?<=.com\).*(?=\))
并在.com
后捕获所有内容,但转到最后一次出现
您可以使用((?<=.com\)[^\]*(?=\))
我基本上用[^\]*
替换了.*
,以便它在第一次出现时停止。
演示
.com\([^\]+)\.*
恕我直言,您不需要专门捕获第一个com的东西,因为无论如何,这是RE通常所做的。如果你捕获除反斜杠以外的任何东西,那也不需要贪婪的说明符。只有需要屏蔽的反斜杠以及文字点有点棘手。
捕获组\1或$ 1或任何它在Powershell上,现在包含MedSoftware。
演示