如何在regexp中的特定位置验证特殊字符
我已经写了Regexp如何在regexp中的特定位置验证特殊字符,regex,Regex,我已经写了Regexp@“^([a-zA-Z]+[a-zA-Z0-9]*)$”它允许所有字符和数字,除了特殊字符和第一个字符不能是数字。现在我必须允许'-'字符位于除最后一个和第一个字符之外的任何位置。如何修改它。您可以在第二个字符类中添加一个-,并添加(?!,以确保字符串不以-结尾 解释 ^在行首断言位置 (?!.*-$)负前瞻,断言字符串不以- (捕获组 [a-zA-Z]+匹配字符类一次或多次 [a-zA-Z0-9-]*将字符类与-匹配零次或多次 )关闭捕获组 $在行尾断言位置 注
@“^([a-zA-Z]+[a-zA-Z0-9]*)$”
它允许所有字符和数字,除了特殊字符和第一个字符不能是数字。现在我必须允许'-'
字符位于除最后一个和第一个字符之外的任何位置。如何修改它。您可以在第二个字符类中添加一个-
,并添加(?!
,以确保字符串不以-
结尾
解释
在行首断言位置^
负前瞻,断言字符串不以(?!.*-$)
-
捕获组(
匹配字符类一次或多次[a-zA-Z]+
将字符类与[a-zA-Z0-9-]*
匹配零次或多次-
关闭捕获组)
在行尾断言位置$
您可以向第二个字符类添加
-
,并添加(?!
,以确保字符串不以-
结尾
解释
在行首断言位置^
负前瞻,断言字符串不以(?!.*-$)
-
捕获组(
匹配字符类一次或多次[a-zA-Z]+
将字符类与[a-zA-Z0-9-]*
匹配零次或多次-
关闭捕获组)
在行尾断言位置$
@"^([a-zA-Z ]+[a-zA-Z0-9\- ]*[a-zA-Z0-9 ]+)$"
- 第一组仅允许字母(至少一个)
- 第二组允许任何字符(-include)
- 最后一组仅允许字母和数字(至少一到两个) 排除任何其他字符)
@"^([a-zA-Z ]+[a-zA-Z0-9\- ]*[a-zA-Z0-9 ]+)$"
- 第一组仅允许字母(至少一个)
- 第二组允许任何字符(-include)
- 最后一组仅允许字母和数字(至少一到两个) 排除任何其他字符)
[a-zA-z0-9-]
[a-zA-z0-9-]