c# - 正则表达式/字符串分割

标签 c# .net regex string variant

我对 RegEx 的了解并不如我应有的那么熟悉。 但是,我正在寻找与值变体匹配的表达式。

我有一个值列表(总共大约 30k):

ABCD1234
EF56789
GH123456J
GH123456JK
LMN654987P

我需要能够将前面的字母、中间的数字和末尾的字母分成3个不同的变量。这些值的开头有不确定数量的字符,中间有不确定数量的数字,结尾有不确定数量的字母。

感谢任何帮助。

最佳答案

您可以使用正则表达式来捕获像这样的组,而不是拆分:

([A-Z]+)([0-9]+)([A-Z]*)

Working demo

此外,如果您想匹配不区分大小写的字符串,可以使用 i 标志。

Working demo

比赛信息:

MATCH 1
1.  [0-4]   `ABCD`
2.  [4-8]   `1234`
3.  [8-8]   ``
MATCH 2
1.  [9-11]  `EF`
2.  [11-16] `56789`
3.  [16-16] ``
MATCH 3
1.  [17-19] `GH`
2.  [19-25] `123456`
3.  [25-26] `J`
MATCH 4
1.  [27-29] `GH`
2.  [29-35] `123456`
3.  [35-37] `JK`
MATCH 5
1.  [38-41] `LMN`
2.  [41-47] `654987`
3.  [47-48] `P`

此外,如果您不想要空内容,则可以使用此正则表达式:

([a-z]+)([0-9]+)([a-z]+)?

关于c# - 正则表达式/字符串分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37933317/

相关文章:

c# - 如何等待 Func<Task<string>>?

ruby - 捕获特定字符之间的字符串

c# - 单击按钮打开新标签页?

关于 DataGridView 排序的 C# 问题

c# - JSON 文件和 LINQ 求和与分组

regex - 具有特殊字符的 Angular2 密码验证

javascript - javascript中包含字母数字字符和最多一个下划线符号的用户名的正则表达式

c# - 在 Excel 中查找图像位置

.net - ABCPDF 6 组件问题 - 输出打印小

c# - 参差不齐的任务数组 - 并发问题