gpt4 book ai didi

特定长度的 RegEX 字符串

转载 作者:行者123 更新时间:2023-12-01 23:47:15 24 4
gpt4 key购买 nike

嘿,我在 RegEX 方面很糟糕,所以我发布了这个问题,希望 RegEX 大师能够轻松知道并分享答案。

我有以下字符串类型:

508815  AYBK1619RAUEZP
AWBZ4222TYBE1207CWSWER
DEFAULT EP1 O25R60

我需要这种格式(拆分):

508815   AYBK1619  RAU EZP
AWBZ4222 TYBE1207 CWS WER
DEFAULT EP1 O25 R60

所以: xxxxxxxx xxxxxxxx xxx xxx

  • 字符串中的前 8 个字符
  • 字符串中的下 8 个字符
  • 字符串中的下 3 个字符
  • 字符串中的最后 3 个字符

我可以执行 Mid(x,x) 和所有这些操作,但我认为使用 RegEX 会使代码更快、更简洁。

任何帮助都会很棒!谢谢!

最佳答案

如果您希望实际使用正则表达式在这些位置进行拆分,您可以使用以下内容:

Dim s As String = "508815  AYBK1619RAUEZP"
Dim m() As String = Regex.Split(s, "(?<=^.{8})|(?<=^.{16})|(?<=^.{19})")
Console.WriteLine(String.Join(" ", m)) '=> "508815 AYBK1619 RAU EZP"

您也可以只匹配那些位置的子字符串,而不是splitting ...

Dim s As String = "AWBZ4222TYBE1207CWSWER"
Dim m As Match = Regex.Match(s, "^(.{8})(.{8})(.{3})(.{3})$")
If m.Success Then
Console.WriteLine(
String.Join(" ",
m.Groups(1).Value,
m.Groups(2).Value,
m.Groups(3).Value,
m.Groups(4).Value
))
End If

'**Output => "AWBZ4222 TYBE1207 CWS WER"

关于特定长度的 RegEX 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28416261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com