【发布时间】:2022-01-07 06:54:31
【问题描述】:
我正在使用 Powershell 脚本将 SWIFT 消息(基于文本)解析到数据库中。我正在使用 REGEX 在文件中查找适当的字符串并提取它们。我现在遇到的问题是其中一个数据字段可以在字符串中包含 CR/LF 字符 - 在下面的示例中,我还需要提取第二行。
:61:2111261126D12000,00NTRF11000004217657P//03MT211124101166
JANE DOE 1232
我在 RegExr 中测试了这个正则表达式模式(:61:.*[\r\n].*),它认为[\r\n] 字符是有效的要求,所以我的计划是有两个表达式 - 一个有 CR/LF 字符,一个没有 CR/LF 字符来识别这两个消息 -有或没有换行符 - 但是下面的代码将返回所有匹配项,无论是否包含换行符 - 似乎 PS 在 CR/LF 之后停止评估字符串。
$transaction = $swift | select-string ‘:61:.*[\r\n].*’ -AllMatches | % { $_.Matches } | % { $_.Value }
我可以使用 REGEX 来完成这项任务,还是必须创建一个函数来读取整个字符串并检查下一行标记以确定该字符串的结尾?
【问题讨论】:
-
$swift是多行string还是array?$swift.GetType()=>String或Object[]?
标签: regex powershell