正则表达式将字母数字字符串拆分为3个部分?

时间:2011-11-13 02:53:23

标签: c# regex

我有许多不同格式的输入字符串,我需要将输入字符串分成3个部分。以下几个例子(虽然有几种可能性):

1A1 = 1,A,1

123AA44 = 123,AA,44

AA44 =空,AA,44

44AA = 44,AA,空

这些部分的附加限制:

  • 第1部分仅为数字,长度为1-4个字符
  • 第二部分仅为alpha且长度为1-3个字符
  • 第3部分可以是数字或字母数字,长度为1-4个字符

我已经使用下面的代码结束了我的正则表达式知识。它适用于每个场景,除非输入中的3个部分中的一个留空。需要一些帮助!感谢。

Regex regex = new Regex("(?<Section1>[0-9]{1,4})(?<Section2>[a-zA-Z]{1,3})(?<Section3>[0-9a-zA-Z]{1,4})");
Match match = regex.Match(inputString);

string 1 = match.Groups["Section1"].Value;
string 2 = match.Groups["Section2"].Value;
string 3 = match.Groups["Section3"].Value;

2 个答案:

答案 0 :(得分:2)

你试过这个吗?

Regex regex = new Regex("(?<Section1>[0-9]{0,4})(?<Section2>[a-zA-Z]{0,3})(?<Section3>[0-9a-zA-Z]{1,4})");

答案 1 :(得分:0)

为每个部分添加一个可选项应该足够了 我将规则添加到第3部分,以数字

开头
Regex regex = new Regex("(?<Section1>[0-9]{1,4})?(?<Section2>[a-zA-Z]{1,3})?(?<Section3>[0-9][0-9a-zA-Z]{0,3})?");