使用Vb.net

时间:2015-07-06 12:19:06

标签: regex vb.net

我有两个正则表达式,如下所述。

Regex 1。

^\d{9}_[a-zA-Z]{1}_(0[1-9]|1[0-2]).(0[1-9]|[1-2][0-9]|3[0-1]).[0-9]{4}_[0-9]{3}_[0-9a-zA-Z]{2}(?:_[0-9a-zA-Z]*)?

使用这个我正在检查字符串。

  

999999999_A_12.10.2015_010_2q_somedescription

如果任何这种模式失败,请说

  

999999999_12.10.2015_010_2q_somedescription

我需要通知第二部分错过了这个我正在使用正则表达式。

Regex 2.

^\d{9}_^[a-zA-Z]$_(0[1-9]|1[0-2]).(0[1-9]|[1-2][0-9]|3[0-1]).[0-9]{4}_^[0-9]{3}$_[0-9a-zA-Z]{2}$_[0-9a-zA-Z]*

我尝试将正则表达式和字符串拆分成组并进行比较。即使我的字符串包含

,我也在vb.net中使用Regex.Match方法
  

999999999_AB_12.10.2015_010_2q_somedescription

它给出了成功的结果。所以我写了正则表达式2完全匹配。但我需要将这两个正则表达式组合在一起并将其组合成一个表达式。我正在拆分正则表达式2和字符串比较它们使用vb.net中的Regex.Match方法,但是我不想保留两个正则表达式。

考虑匹配:9

  

99999999_A_12.10.2015_010_2q_somedescription

如果上述字符串中缺少任何内容,如

  

999999999_12.10.2015_010_2q_somedescription

(或)如果有任何其他格式如

  

999999999_AB_12.10.2015_010_2q_somedescription

被认为是不匹配我需要找到哪个部分丢失,我应该通知用户

MisMatch:

  

999999999_12.10.2015_010_2q_somedescription,999999999_AB_12.10.2015_010_2q_somedescription,999999999_AB_12.10.20_010_2q_somedescription,999999999_AB_12.10.2015_01_2q_somedescription,999999999_AB_12.10.2015_010_2_somedescription,9999_AB_12.10.2015_010_2q_somedescription

1 个答案:

答案 0 :(得分:0)

您应该使用命名组来获取可以更改的部分的值。例如:

\d{9}_(?<X>[a-zA-Z]{1})_(0[1-9]|1[0-2]).(0[1-9]|[1-2][0-9]|3[0-1]).[0-9]{4}_[0-9]{3}_[0-9a-zA-Z]{2}(?:_[0-9a-zA-Z]*)?

现在在VB.NET中,您可以检查匹配中捕获组X的值。然后,您可以使用ifswitch执行任何操作。