我有三种不同的东西
xxx
xxx>xxx
xxx>xxx>xxx
其中 xxx 可以是字母和数字的任意组合
我需要一个可以匹配前两个但不是第三个的正则表达式。
要匹配 ASCII 字母和数字,请尝试以下操作:
^[a-zA-Z0-9]{3}(>[a-zA-Z0-9]{3})?$
如果需要 ASCII 字符集之外的字母和数字,则以下内容就足够了:
^[^\W_]{3}(>[^\W_]{3})?$
^\w+(?:>\w+)?$
匹配整个字符串。
\w+(?:>\w+)?\b(?!>)
在更大的子字符串中匹配这样的字符串。
如果你想从匹配中排除下划线,你可以使用[\p{L]\p{N}]
(如果你的正则表达式引擎知道 Unicode),或者[^\W_]
如果它不知道,作为\w
.