2017-05-25 21 views
-5

我想构建一个正则表达式,它只允许在其他位置使用特殊字符。例如,A:)B是不允许的,但允许使用A:B正则表达式允许特殊字符只在替代位置

A:B:C是允许的,但A,[email protected]*(C((D不是。

唯一的要求是允许特殊字符在替代位置,即使是特殊字符后面跟着数字/字符也是允许的。

不管两个特殊字符是相同还是不同,甚至连续两个字母数字都应该被允许。

+0

你可以在这里尝试一下http://regexr.com/进行测试 – Mike

+0

这个问题需要工作来负责。您需要定义特殊字符和“普通”字符(仅限大写ASCII字母?)。会':A)B $'被允许吗?等等,匹配规则还不清楚。 –

+0

今天,除了两个不同的或相同的特殊字符外,其他所有东西都被允许使用 – user3709712

回答

0

这似乎对于工作你的情况:

[0-9A-Za-z]+([~`[email protected]#$%^&*()_+\-=;':"][0-9A-Za-z]+)+ 

我已经测试了某些情况下在regexr

PS:我不是\w\W_被解释为的\w一部分。在这种情况下,我假设_将是一个特殊字符。


希望这有助于!

+0

这是为A @#B工作,但不为A#B @ C C工作 – user3709712

+0

它不匹配'A#B @#C',你看到了什么问题? – anacron

+0

它似乎对我很好:在这里检查:http://regexr.com/3g1h5 – anacron

相关问题