我是正则表达式的新手。我正在寻找只有字符'SALT'的字符串,其前缀为+或 - 符号。
我正在使用部分正常工作的[(SALT){1}\+-]{8}
。不完全。
总字符数8
可接受的值
+S+A+L+T
+S-A-L+T
+T+L+A+S
以下值是不可接受的。
除了+, - 不再重复字符作为前缀。
即
S+L+S+S ( Character is repeated in this )
S+++++
-------S
S-+S-+S
如果有人在这方面帮助我,我将不胜感激。
由于
答案 0 :(得分:5)
您可以使用前瞻来确保所有角色都在那里
^(?=.*S)(?=.*A)(?=.*L)(?=.*T)([+-][SALT]){4}$
答案 1 :(得分:0)
一种有趣的方式(如果RE引擎支持条件和反向引用):
^(?:[+-](?:(S(?(1)Z))|(A(?(2)Z))|(L(?(3)Z))|(T(?(4)Z)))){4}$
答案 2 :(得分:-1)
试试这个:
^(([+\-]([SALT]))(?!\2))+$
它使用负前瞻断言来防止匹配重复的断言。