1

我有三种不同的东西

xxx
xxx>xxx
xxx>xxx>xxx

其中 xxx 可以是字母和数字的任意组合

我需要一个可以匹配前两个但不是第三个的正则表达式。

4

2 回答 2

5

要匹配 ASCII 字母和数字,请尝试以下操作:

^[a-zA-Z0-9]{3}(>[a-zA-Z0-9]{3})?$

如果需要 ASCII 字符集之外的字母和数字,则以下内容就足够了:

^[^\W_]{3}(>[^\W_]{3})?$
于 2012-04-24T14:51:00.093 回答
1
^\w+(?:>\w+)?$

匹配整个字符串。

\w+(?:>\w+)?\b(?!>)

在更大的子字符串中匹配这样的字符串。

如果你想从匹配中排除下划线,你可以使用[\p{L]\p{N}](如果你的正则表达式引擎知道 Unicode),或者[^\W_]如果它不知道,作为\w.

于 2012-04-24T14:51:27.073 回答