求一个正则

2013-11-15 16:06:45 +08:00
 family
只能包含字母、数字、下划线,不能以下划线开头或结尾

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

我以为是这样的。。。
2864 次点击
所在节点    PHP
10 条回复
zhen9ao
2013-11-15 16:16:14 +08:00
貌似是对的
merlin852
2013-11-15 16:21:45 +08:00
/^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_]*[a-zA-Z0-9]+$/
family
2013-11-15 16:23:00 +08:00
@merlin852
@zhen9ao

谢谢,最后这样是可以的

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

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

但我觉得你应该不是要这样的正则吧。
family
2013-11-15 17:00:50 +08:00
@exch4nge 是说我3楼的?
lululau
2013-11-15 17:13:59 +08:00
不懂 PHP,/^(?!_)[a-zA-Z0-9_]+(?<!_)$/ 用 Perl 测试通过
family
2013-11-15 17:28:24 +08:00
@lululau 嗯,php测试通过,谢谢。
workaholic
2013-11-15 17:47:13 +08:00
/^(?!_)\w+(?<!_)$/
akira
2013-11-16 14:37:52 +08:00
/^(?!_)\w+(?<!_)$/

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

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

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

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

© 2021 V2EX