找到首字母出现的字符串,并在特殊字符首次出现之前找到字符串

时间:2018-03-16 11:46:27

标签: regex powershell

我有以下日志字符串,我只需从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.dictionariesdataproduct.connectionString" info:初始化字符串的格式不符合从索引0开始的规范.6069

现在我的正则表达式如下:

((?<=.com\\).*(?=\\))

并在.com之后捕获所有内容,但最后出现\

2 个答案:

答案 0 :(得分:0)

您可以使用((?<=.com\\)[^\\]*(?=\\))

我基本上将.*替换为[^\\]*,以便在第一次\出现时停止。

Demo

答案 1 :(得分:0)

\.com\\([^\\]+)\\.*

Imho你不需要特别捕捉第一个com的东西,因为那是RE通常做的事情。如果你捕获除了反斜杠以外的任何东西,那么它也不需要贪婪的说明符。只有需要屏蔽的反斜杠以及字面点才有点棘手。

捕获组\ 1或$ 1或powershell上的任何内容,现在都包含MedSoftware。

Demo