正则表达式匹配组前的最后一个匹配



我无法在指定匹配之前找到管道字符|之间的最后内容。

我想在|401 |之前找到" 313.175,89-"(或|符号之间的任何符号)。

|Posting text | Amount|BTC | | |Beginning balance | 0,00 | | | 2|29.07.2021|29.07.2021| 401 ARD DEP. PLN OPROC.: 0 OD: 29.07.2021 DO: | | 313.175,89-|401 | | | | | KAPITALU: 612313

所有我有|.*?(?=|401.|),但匹配所有从换行符唱。

你的正则表达式几乎在那里,但问题是你的正则表达式将从第一个管道匹配,因为.*?也匹配管道。

|.*?替换为[^|]*以只匹配非管道:

[^|]*(?=|401 |)

查看现场演示

它的工作原理是匹配任意数量的非管道且后跟|401 |的字符。

请注意,字符类中的管道并不需要转义,因为大多数字符在字符类中使用时会失去其特殊含义,而pipe就是其中之一。


若要省略目标的前后空格,请使用[^| ]*(?= *|401 |)

查看现场演示

相关内容

  • 没有找到相关文章