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)
    -一种正向前瞻,要求其模式立即与当前位置右侧匹配:
    • [\r\n]+
      -1个或多个CR和/或LF符号
    • Kontr\:FIRMA HANDLOWA TOP-ZOO
      -a
      Kontr.:FIRMA HANDLOWA TOP-ZOO
      子字符串

您有
TytułPłatnosci:faktura vat 1048399482
in
match.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)