正则表达式模式只允许在替代位置使用特殊字符

时间:2017-05-25 06:47:50

标签: java regex

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

允许

A:B:C,但A,!@B*(C((D不允许。

唯一的要求是允许在替代位置使用特殊字符,即使是允许使用数字/字符的特殊字符。

任何两个特殊字符都不能相同或不同,甚至不允许连续两个字母数字。

1 个答案:

答案 0 :(得分:0)

这似乎适用于您的情况:

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

我在regexr上测试了一些案例:

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

希望这有帮助!