我想构建一个正则表达式,它只允许在其他位置使用特殊字符。例如,A:)B
是不允许的,但允许使用A:B
。正则表达式允许特殊字符只在替代位置
A:B:C
是允许的,但A,[email protected]*(C((D
不是。
唯一的要求是允许特殊字符在替代位置,即使是特殊字符后面跟着数字/字符也是允许的。
不管两个特殊字符是相同还是不同,甚至连续两个字母数字都应该被允许。
我想构建一个正则表达式,它只允许在其他位置使用特殊字符。例如,A:)B
是不允许的,但允许使用A:B
。正则表达式允许特殊字符只在替代位置
A:B:C
是允许的,但A,[email protected]*(C((D
不是。
唯一的要求是允许特殊字符在替代位置,即使是特殊字符后面跟着数字/字符也是允许的。
不管两个特殊字符是相同还是不同,甚至连续两个字母数字都应该被允许。
这似乎对于工作你的情况:
[0-9A-Za-z]+([~`[email protected]#$%^&*()_+\-=;':"][0-9A-Za-z]+)+
我已经测试了某些情况下在regexr:
PS:我不是\w
和\W
为_
被解释为的\w
一部分。在这种情况下,我假设_
将是一个特殊字符。
希望这有助于!
这是为A @#B工作,但不为A#B @ C C工作 – user3709712
它不匹配'A#B @#C',你看到了什么问题? – anacron
它似乎对我很好:在这里检查:http://regexr.com/3g1h5 – anacron
你可以在这里尝试一下http://regexr.com/进行测试 – Mike
这个问题需要工作来负责。您需要定义特殊字符和“普通”字符(仅限大写ASCII字母?)。会':A)B $'被允许吗?等等,匹配规则还不清楚。 –
今天,除了两个不同的或相同的特殊字符外,其他所有东西都被允许使用 – user3709712