【问题标题】:C# regex Split capture preceding charactersC# regex Split 捕获前面的字符
【发布时间】:2023-03-12 13:45:01
【问题描述】:

在 C# 中,我想将一个字符串拆分为(子字符串)。

我正在尝试使用 regex.split() 来做到这一点。

每个字符串都有一个标题和后面的一些记录 每条新记录都可以通过某些关键字来识别:CR、STAT、EFFE (每个标识符的长度为 4 个字符,因此 CR 末尾有 2 个空格 问题是我必须在标识符之前获得 3 个字符,这使我很难制作正则表达式。每一个

输入:

123456 ;04;PERS;    ;073583118500CR;CR  ;PROF;09;30;073583118500;EFFE  ;PROF;0P

期望的输出:

123456 ;
04;PERS;    !0735831185
00CR;CR  ;PROF;09;30;0735831185
00;EFFE  ;PROF;0P

到目前为止我得到的是这个正则表达式模式

(?=..;CR  ;|..;PERS;|..;EFFE;)

但如果没有更干净的方式来写这个,我会徘徊。 类似:

..;(CR  |PERS|EFFE);

【问题讨论】:

  • 您想要的输出与您的描述不匹配。你确定这是正确的吗?

标签: c# regex string split


【解决方案1】:

您只需将整个正则表达式包装在前瞻断言中

(?=..;(?:CR  |PERS|EFFE);)

查看正则表达式如何匹配http://regex101.com/r/zZ7lG4/1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多