由字母、数字或“_”、“/”、“-”、“ ”构成,特殊字符最多出现一次且不能作为开头结尾 这个怎么弄正则表达式 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 @"^(?=[a-zA-Z0-9]*[-_/ ]?[a-zA-Z0-9]*$)(?![-_/ ])[-_/ a-zA-Z0-9]*(?![-_/ ])$" try...^(?!(?:[^_/ -]*[_/ -]){2,})(?![_/ -])[a-zA-Z0-9_/ -]*[a-zA-Z0-9]$ ^[a-zA-Z0-9]+[-_ a-zA-Z0-9]?[a-zA-Z0-9]+$ 如果字符串会小于2个的话用这个正则表达式:^[a-zA-Z0-9]+([-_ a-zA-Z0-9]?[a-zA-Z0-9]+)?$ try:"^(?:(?=[^-]*-?[^-]*$)|(?=[^_]*_?[^_]*$)|(?=[^/]*/?[^/]*$)|(?=[^ ]* ?[^ ]*$))(?![-_/ ])[-_/\sa-zA-Z0-9]*(?![-_/ ])$" Response.Write(System.Text.RegularExpressions.Regex.IsMatch("a_", @"^[a-zA-Z0-9]+([-_ a-zA-Z0-9]?[a-zA-Z0-9]+)?$"));我这个返回的是False,是预料的结果。不知道wuyi8808大虾是怎么测试的。 这个就对了,不能用\w,不好意思啊@"^[a-zA-Z0-9]+([-_/]|\s)?[a-zA-Z0-9]+$" 能空字符串吗?能的话改成这样吧^([a-zA-Z0-9]+([-_ a-zA-Z0-9]?[a-zA-Z0-9]+)?)?$ 是啊,补上^([a-zA-Z0-9]+([-_ /a-zA-Z0-9]?[a-zA-Z0-9]+)?)?$ 不好意思,漏了个'<',最后的(?![-_/ ])应该是(?<![-_/ ]):^(?=[a-zA-Z0-9]*[-_/ ]?[a-zA-Z0-9]*$)(?![-_/ ])[-_/ a-zA-Z0-9]*(?<![-_/ ])$但还是你的正则更简单易懂些。 不知道空字符串是当做特殊字符处理还是做普通字符处理,如果是当做普通字符的话@"^[a-zA-Z0-9\s]+([-_/])?[a-zA-Z0-9]+$" 如果是特殊字符的话@"^[a-zA-Z0-9]+([-_/\s])?[a-zA-Z0-9]+$" 对了,我还没有考虑一个字符的情况不知道空字符串是当做特殊字符处理还是做普通字符处理,如果是当做普通字符的话 C# code@"^[a-zA-Z0-9\s]+(([-_/])?[a-zA-Z0-9]+)?$" 如果是特殊字符的话 C# code@"^[a-zA-Z0-9]+(([-_/\s])?[a-zA-Z0-9]+)?$" 还可以短些:"(?in)^([a-z0-9]+([-_/ ]?[a-z0-9]+)?)?$" 再整理一下,当空字符串作为普通字符处理时@"^[a-zA-Z0-9\s]+(([-_/])?[a-zA-Z0-9\s]+)?$"当空字符串作为特殊字符处理时@"^[a-zA-Z0-9]+(([-_/\s])?[a-zA-Z0-9]+)?$" @"^[a-zA-Z0-9]+([-]?[a-zA-Z0-9]*[_]?[a-zA-Z0-9]*[/]?[a-zA-Z0-9]*\s?[a-zA-Z0-9]+)?$" 首先感谢wuyi8808lxcnnjunshanhudazhaximbh0210ytycoffe谢谢你们的帮助,可能我的需求不是很明确,不好意思,呵呵不过现在可以了,看了你们的讨论,学习了,哈哈啥也不说了 散分 按楼主的需求,这个是不对的,测试用例abc/def-ghi暂时写了一个,可用,但由于楼主没限定长度,可能存在效率问题,有时间我再看下^(?!.*?([_/ -]).*?\1)(?![_/ -])[a-zA-Z0-9_/ -]*[a-zA-Z0-9]$ 那个测试用例确实通不过暂时没有长度限制谢拉lxcnn @"^[a-zA-Z0-9]+([-]?[a-zA-Z0-9]*[_]?[a-zA-Z0-9]*[/]?[a-zA-Z0-9]*\s?[a-zA-Z0-9]+)?$"这个应该有顺序问题 只能按照先“-” 然后“_” 然后“/” 这样才不会错如果把 “/” 放到“-”“_”之前 就会报错需求是没有顺序的 动态添加的控件取不值,急!!![ javascript联动 选值问题 生成解决方案有什么意义? 网站开通,CSDN的朋友来捧场. 怎么判定输入的内容为中文? 怪事!,EditCommandColumn:无法进入编辑状态 请教各位大侠:DATAGRID数据另存的问题 怎么样取得前一个网址啊? ~~~~~~~~~~求解~~~~~~~~~ sqlDataAdapter 与 command的问题 SQL insert的问题 sql 语句
"^(?:(?=[^-]*-?[^-]*$)|(?=[^_]*_?[^_]*$)|(?=[^/]*/?[^/]*$)|(?=[^ ]* ?[^ ]*$))(?![-_/ ])[-_/\sa-zA-Z0-9]*(?![-_/ ])$"
@"^[a-zA-Z0-9]+([-_/]|\s)?[a-zA-Z0-9]+$"
^([a-zA-Z0-9]+([-_ a-zA-Z0-9]?[a-zA-Z0-9]+)?)?$
^([a-zA-Z0-9]+([-_ /a-zA-Z0-9]?[a-zA-Z0-9]+)?)?$
不好意思,漏了个'<',最后的(?![-_/ ])应该是(?<![-_/ ]):
^(?=[a-zA-Z0-9]*[-_/ ]?[a-zA-Z0-9]*$)(?![-_/ ])[-_/ a-zA-Z0-9]*(?<![-_/ ])$但还是你的正则更简单易懂些。
@"^[a-zA-Z0-9\s]+([-_/])?[a-zA-Z0-9]+$"
如果是特殊字符的话
@"^[a-zA-Z0-9]+([-_/\s])?[a-zA-Z0-9]+$"
不知道空字符串是当做特殊字符处理还是做普通字符处理,如果是当做普通字符的话
C# code@"^[a-zA-Z0-9\s]+(([-_/])?[a-zA-Z0-9]+)?$" 如果是特殊字符的话
C# code@"^[a-zA-Z0-9]+(([-_/\s])?[a-zA-Z0-9]+)?$"
还可以短些:"(?in)^([a-z0-9]+([-_/ ]?[a-z0-9]+)?)?$"
@"^[a-zA-Z0-9\s]+(([-_/])?[a-zA-Z0-9\s]+)?$"当空字符串作为特殊字符处理时
@"^[a-zA-Z0-9]+(([-_/\s])?[a-zA-Z0-9]+)?$"
lxcnn
junshanhudazhaxi
mbh0210
ytycoffe
谢谢你们的帮助,可能我的需求不是很明确,不好意思,呵呵
不过现在可以了,看了你们的讨论,学习了,哈哈啥也不说了 散分
按楼主的需求,这个是不对的,测试用例
abc/def-ghi暂时写了一个,可用,但由于楼主没限定长度,可能存在效率问题,有时间我再看下
^(?!.*?([_/ -]).*?\1)(?![_/ -])[a-zA-Z0-9_/ -]*[a-zA-Z0-9]$
那个测试用例确实通不过
暂时没有长度限制
谢拉lxcnn
如果把 “/” 放到“-”“_”之前 就会报错需求是没有顺序的