我很难在正则表达式匹配之前获取文本。这是我的输入文本,例如:
Tytuł Płatnosci: FK 1048388520 F 1048393748
Kontr. : AUTO-BLAK SP. Z O. O.
FARBIARSKA 25A
WARSZAWA
Nr Banku: 17501123 RAIFF Centrum Operacyjne
Nr Rachunku: 06175000090000000010263654
Data Stempla 170906
Kwota Przekazu: 88.30 PLN
Info Code; 0003677116
06.09.17 PRZELEW PRZYCHODZACY 06.09.17 100.00
Referencje : PL0INE117249DJ20
Nr Ref: 4249174665
Tytuł Płatnosci: faktura vat 1048399482
Kontr. : FIRMA HANDLOWA TOP-ZOO
我的搜索字符串是:Kontr。 :FIRMA HANDLOWA TOP-ZOO 我必须在它之前得到它的字符串:TytułPłatnosci:faktura vat 1048399482
我没有代码,因为我正在使用带有正则表达式组件的自动化软件。
我尝试了这种模式:
((.*\n){1})Kontr. : FIRMA HANDLOWA TOP-ZOO
然而,它没有返回我想要的输出,它返回另一个带有“Tytul”,我只想在Kontr之前返回文本。 :FIRMA HANDLOWA TOP-ZOO而不是其他文本。
希望你能帮助我。谢谢
答案 0 :(得分:1)
由于您无法访问代码,因此您只需要一个正则表达式解决方案。使用积极的前瞻:
(?-s).+(?=[\r\n]+Kontr\. : FIRMA HANDLOWA TOP-ZOO)
^^^ ^
或
[^\r\n]+(?=[\r\n]+Kontr\. : FIRMA HANDLOWA TOP-ZOO)
请参阅regex demo
<强>详情
(?-s)
- 关闭单线模式(当.
与换行符号匹配时).+
- 除换行之外的任何1个或多个字符,尽可能多(我怀疑你有兴趣提取空字符串,因此,我使用+
量词,如果你感兴趣的话如果该行为空,请使用.*
代替)(注意:如果您想避免匹配尾随CR符号,请将.
替换为[^\r\n]
)(?=[\r\n]+Kontr\. : FIRMA HANDLOWA TOP-ZOO)
- 一个积极的前瞻,要求其模式立即与当前位置的右侧匹配:
[\r\n]+
- 一个或多个CR和/或LF符号Kontr\. : FIRMA HANDLOWA TOP-ZOO
- Kontr. : FIRMA HANDLOWA TOP-ZOO
子字符串。