正则表达式允许字母数字,空格,一些特殊字符
我有这个^[a-zA-Z0-9 @&$]*$
,但在少数情况下不适用于我。正则表达式允许字母数字,空格,一些特殊字符
如果有人类型
- 只由数字组成(例如
1234567
)的字符串 - 的字符串开始以特殊字符(例如
&123abc
)
需要被拒绝。请注意,特殊字符可以在中间和结尾。
你似乎需要避免匹配的字符串,仅由数字,并确保该字符串以字母数字开始。我假设你也需要能够匹配空字符串(原始正则表达式匹配空字符串)。
这就是为什么我建议
^(?!\d+$)(?:[a-zA-Z0-9][a-zA-Z0-9 @&$]*)?$
详细
-
^
- 串 -
(?!\d+$)
启动 - 失败的比赛,如果负前瞻一个字符串•数字只有 -
(?:[a-zA-Z0-9][a-zA-Z0-9 @&$]*)?
- 的可选顺序: - 一个数字或字母 -
[a-zA-Z0-9 @&$]*
- 0+数字,字母,空格,@
,&
或$
字符
-
[a-zA-Z0-9]
$
- 字符串结尾。
如果我想排除一些并包含一些特殊字符,我如何排除一些,为包容,我从你的正则表达式中看到它。 – Sharpeye500
@ Sharpeye500:对不起,你是什么意思?如果你不想匹配一个字符,首先不要将它添加到字符类中。 –
如果有“。” (句点)之间的字符,目前正则表达式接受它。 例如,“Test.Work”,如果我需要拒绝“。”。 ,我如何排除正则表达式。 – Sharpeye500
你能准确列出哪些条件需要被拒绝,为什么? –
尝试['^(!!\ d + $)(?:[a-zA-Z0-9] [a-zA-Z0-9 @&$] *)?$'](https://regex101.com/R/AScqhl/1)。 –
谢谢,请将其作为您的答案,以便我可以将此标记为已接受的答案。 – Sharpeye500