RegEx按固定长度分组

  • 本文关键字:RegEx regex
  • 更新时间 :
  • 英文 :


样本输入:

19GMC TRNLLBLK
98CHY TK   GRN
02TOYO   4DWHI
21LAND     BLK

帮助了解我正在尝试做什么:

19|GMC |TRN|LL|BLK
98|CHY |TK |  |GRN
02|TOYO|   |4D|WHI
21|LAND|   |  |BLK

列:

  1. 总是两位数
  2. 总是3个字母后面跟着空格或4个字母
  3. 总是所有空格,2个字母后面跟着一个空格或3个字母
  4. 总是所有空格或两个字符
  5. 总是所有空格或三个字母

我正试图使用RegEx来选择每个";列";。

非白色字符将是一个组的一部分(每列一个(。

白色字符将是未选定组的一部分。

(?<DIG>d{2})(?<MKE>S{3,4})

我不知道如何创建一个未选择的组,该组计算出要选择多少空白以防止进入";下一列";。

您可以使用5个捕获组:

^(d{2})([A-Z]{3}[A-Z ])([A-Z]{2}[A-Z ]| +)([A-Z0-9]{2}| +)([A-Z]{3}| +)$

解释

  • ^字符串开始
  • (d{2})组1,匹配2位
  • ([A-Z]{3}[A-Z ])第2组,匹配3个字符A-Z和字符A-Z或空格
  • ([A-Z]{2}[A-Z ]| +)第3组,匹配2个字符A-Z和一个字符A-Z或一个仅or空间
  • ([A-Z0-9]{2}| +)第4组,匹配2个字符A-Z或0-9或仅匹配空格
  • ([A-Z]{3}| +)第5组,匹配3个字符A-Z或仅限空格
  • $字符串结束

查看regex演示。

最新更新