求一个正则

2013 年 11 月 15 日
 family
只能包含字母、数字、下划线,不能以下划线开头或结尾

/^[^_][a-z0-9_]+[^_]$/

我以为是这样的。。。
3377 次点击
所在节点    PHP
10 条回复
zhen9ao
2013 年 11 月 15 日
貌似是对的
merlin852
2013 年 11 月 15 日
/^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_]*[a-zA-Z0-9]+$/
family
2013 年 11 月 15 日
@merlin852
@zhen9ao

谢谢,最后这样是可以的

/^(?!_)(?!.*?_$)[a-z0-9_]+$/
zhen9ao
2013 年 11 月 15 日
@family ^[^_]([a-z]*_*[0-9]*)*[^_]$ 这样好像也行
exch4nge
2013 年 11 月 15 日
你的这个正则可以匹配的字符串至少需要三个字符,第一个字符可以是任意非_(可以是特殊字符)的字符,第二个到倒数第二个是匹配a-z,0-9,_的,最后一个字符跟第一个字符一样,可以匹配任意非_(可以是特殊字符)的字符。

比如 "#aaa!" (双引号里面的)这样的字符串也是可以匹配成功的。

但我觉得你应该不是要这样的正则吧。
family
2013 年 11 月 15 日
@exch4nge 是说我3楼的?
lululau
2013 年 11 月 15 日
不懂 PHP,/^(?!_)[a-zA-Z0-9_]+(?<!_)$/ 用 Perl 测试通过
family
2013 年 11 月 15 日
@lululau 嗯,php测试通过,谢谢。
workaholic
2013 年 11 月 15 日
/^(?!_)\w+(?<!_)$/
akira
2013 年 11 月 16 日
/^(?!_)\w+(?<!_)$/

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/89409

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX