C# 如何在正则表达式匹配之前获取上一个文本?
在正则表达式匹配之前,我很难获得文本。这是我的输入文本,例如:C# 如何在正则表达式匹配之前获取上一个文本?,c#,regex,C#,Regex,在正则表达式匹配之前,我很难获得文本。这是我的输入文本,例如: 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:
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.:菲尔玛·汉德洛瓦顶级动物园
我必须先得到字符串:TytułPłatnosci:faktura vat 1048399482
我没有代码,因为我使用的是带有regex组件的自动化软件。
我试过这个模式:
((.*\n){1})Kontr. : FIRMA HANDLOWA TOP-ZOO
但是,它不返回我想要的输出,它返回另一个带有“Tytul”的输出,我只想返回Kontr之前的文本:FIRMA Handlow是顶级动物园,而不是文本的其余部分
希望你能帮我。谢谢因为您无法访问代码,所以您需要一个仅限正则表达式的解决方案。使用积极的前瞻:
(?-s).+(?=[\r\n]+Kontr\. : FIRMA HANDLOWA TOP-ZOO)
^^^ ^
或
见
详细信息
-关闭单线模式(当(?-s)
匹配换行符时)
-尽可能多地使用除换行符以外的任何1个或多个字符(我怀疑您对提取空字符串感兴趣,因此,我使用了+
量词,如果您对换行符为空的情况感兴趣,请使用+
)(注意:如果要避免匹配尾部CR符号,请将*
替换为
)[^\r\n]
-一种正向前瞻,要求其模式立即与当前位置右侧匹配:(?=[\r\n]+Kontr\:FIRMA HANDLOWA TOP-ZOO)
-1个或多个CR和/或LF符号[\r\n]+
-aKontr\:FIRMA HANDLOWA TOP-ZOO
子字符串Kontr.:FIRMA HANDLOWA TOP-ZOO
TytułPłatnosci:faktura vat 1048399482
inmatch.Groups[1].Value
。显示代码。Kontr.:FIRMA HANDLOWA TOP-ZOO
是静态值吗?需要将
转义以匹配文本
。嗨,Wiktor,我没有代码,因为我正在使用带有regex组件的自动化软件。Kontr.:FIRMA HANDLOWA TOP-ZOO是静态值我需要正则表达式,而不是Code.Cool,请参阅下面的解决方案。如果:
周围的空格可以是任意的,您甚至可以使用\s*:\s*
而不是:“
。仍然向上获取其余字符串:这是输出: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:0617500000000010263654数据存储170906 Kwota Przekazu:88.30 PLN信息代码;0003677116 06.09.17 PRZELEW PRZYCHODZACY 06.09.17 100.00参考:PL0INE17249DJ20 Nr参考:4249174665 TytułPłatnosci:faktura vat 1048399482你必须在图案前面添加(?-s)
。明白了吗?-s)有什么用?它现在起作用了!你太棒了!
[^\r\n]+(?=[\r\n]+Kontr\. : FIRMA HANDLOWA TOP-ZOO)