字符串模式的正则表达式

时间:2013-04-26 20:37:44

标签: regex

我是正则表达式的新手。我正在寻找只有字符'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

如果有人在这方面帮助我,我将不胜感激。

由于

3 个答案:

答案 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))+$

它使用负前瞻断言来防止匹配重复的断言。