regex - 在Powershell中获取2个字符之间的所有文本

标签 regex powershell

我正在尝试在日志文件中收集2个字符之间的所有文本。

示例日志文件文本为:

Conversation with Boris at 6/30/2017 7:26:35 AM on Server(jabber)
(7:26:41 AM) Boris@Boris.com/Server:  I likes cake
This was a Message from Boris to everyone at 2017-06-29 22:35:18.724681 EVE ~~~

我想收集第一个方括号和最后一个波浪号之间的所有文本。

我一直在尝试使用REGEX来执行此操作,但是不确定正确的模式。

有人可以帮忙吗?

最佳答案

根据wOxxOm的评论,此正则表达式模式似乎可以解决问题:'(?s)\(.*?~+'
以下是如何在PowerShell中使用它:

$Sample = @"
Conversation with Boris at 6/30/2017 7:26:35 AM on Server(jabber)
(7:26:41 AM) Boris@Boris.com/Server:  I likes cake
This was a Message from Boris to everyone at 2017-06-29 22:35:18.724681 EVE ~~~
"@

$Sample -Match '(?s)\(.*?~+' | Out-Null

$Result = $Matches.Values

这是$Result:
(jabber)
(7:26:41 AM) Boris@Boris.com/Server:  I likes cake
This was a Message from Boris to everyone at 2017-06-29 22:35:18.724681 EVE ~~~

关于regex - 在Powershell中获取2个字符之间的所有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44840362/

相关文章:

python - 带有特殊字符 "^"的文件名无法被pattern.match(RegEx 函数)识别

powershell - 想要使用Powershell查询远程PC的正常运行时间

Powershell 动态添加成员

powershell - Docker 在 Powershell 中登录到 gcr.io

PowerShell 删除最后一个错误

Python 字符串转换

javascript - 没有特定单词的行匹配的正则表达式

regex - 无法识别的转义\m 在 PERL 的正则表达式错误中通过

php - 用于匹配 WP 重定向插件中不以字符串开头的 URL 的正则表达式

json - 在Powershell中过滤JSON