正则表达式VBScript使用OR表达式(|)

时间:2013-06-20 20:58:35

标签: regex vbscript

我需要使用正则表达式来解析字符串。

大多数情况下,可以使用表达式

解析字符串
^([a-zA-Z\-\,0-9\(\)\#\/ \.]{1,21})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})

有时,字符串需要包含额外的4个字符,因此表达式为

^([a-zA-Z\-\,0-9\(\)\#\/ \.]{1,25})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})

它们自己的表达式可以在各自的字符串上运行。第一个也将在用于第二个表达式的字符串上技术上有效,但表达式的。{0,9}部分将被4个字符关闭。

A quick explanation of the expression:
Subset 1: 1 - 21 (or 25 characters)
any characters a-z
any characters A-Z
the dash, the comma
any digits 0-9
the open and close parenthesis, the hash tag, forward slash, space and period.

Subsets 2-7
Any characters (up to 9 total)

我希望得到类似下面的表达式

^([a-zA-Z\-\,0-9\(\)\#\/ \.]{1,21|25})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})

OR

^([a-zA-Z\-\,0-9\(\)\#\/ \.]{1,21}|{1,25})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})

我试过这些并且它们没有用。其他人有什么想法吗?

1 个答案:

答案 0 :(得分:1)

它相当冗长,但我认为你必须这样做:

^([a-zA-Z\-\,0-9\(\)\#\/ \.]{1,21}|[a-zA-Z\-\,0-9\(\)\#\/ \.]{25})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})(.{0,9})

第一个捕获组必须是1-21个字符,或25个字符长。

如果您愿意更改群组的捕获方式(如果您的正则表达式引擎支持它),您也可以这样做:

^([a-zA-Z\-\,0-9\(\)\#\/ \.]{1,21}|[a-zA-Z\-\,0-9\(\)\#\/ \.]{25})(.{0,9}){6}