首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 请大家写出满足如下要求的正则表达式 [已结帖,结帖人:tteesstt]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tteesstt
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-07-15 22:23:44 楼主
    使用正则表达式,以实现下面的功能:
    1)不可以为空
    2)允许含有特殊字符:! $ % & \ () - / ; < ? [] ^ {}
    3)必须同时含有半角英文大写字母、半角英文小写字母以及半角数字
    4)8文字以上,16文字以下


    200  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • java2000_net_test
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-15 22:23:471楼 得分:0
    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【tteesstt】截止到2008-07-15 22:23:53的历史汇总数据(不包括此帖):
    发帖的总数量:109                      发帖的总分数:7000                    每贴平均分数:64                     
    回帖的总数量:76                      得分贴总数量:8                        回帖的得分率:10%                     
    结贴的总数量:108                      结贴的总分数:6900                   
    无满意结贴数:0                        无满意结贴分:0                       
    未结的帖子数:1                        未结的总分数:100                     
    结贴的百分比:99.08 %              结分的百分比:98.57 %                 
    无满意结贴率:0.00  %              无满意结分率:0.00  %                 
    值得尊敬
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • little06
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-15 22:41:172楼 得分:0
    感觉用函数写还好一些

    一个正则出来,看的人头都昏了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • joejoe1991
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-15 23:21:323楼 得分:40
    这样行不行??

    Java code
    public static void main(String[] args) { System.out.println(regexText("")); System.out.println(regexText("123")); System.out.println(regexText("A4783")); System.out.println(regexText("zA25$4783")); System.out.println(regexText("z457E{")); System.out.println(regexText("524754x1&#")); System.out.println(regexText("10248Zgk@")); System.out.println(regexText("102xfas44dsfdhd48Zgk@")); } public static boolean regexText(String value) { return value.matches("^(?=.*\\p{Punct})(?=.*\\p{Alnum}).{8,16}$"); }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jdlsfl
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-15 23:31:174楼 得分:0
    mark
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • shadowlin
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 00:50:165楼 得分:0
    用一个正则判断出来么?还是可以分步来判断呢?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tteesstt
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 06:17:346楼 得分:0
    当然是用一个正则表达式啊!

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tteesstt
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 06:17:547楼 得分:0
    增加支出到200分
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • java2000_net
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

      2

    发表于:2008-07-16 06:50:118楼 得分:50
    关于长度的测试不会写,只好用2个正则,一个判断数据,另一个判断长度

    Java code
    public class T { public static void main(String[] args) { System.out.println(regexText("13a4C5fdsfiaf")); System.out.println(regexText("123")); System.out.println(regexText("A47c83")); System.out.println(regexText("ZA25$4783")); System.out.println(regexText("z457E{")); System.out.println(regexText("524754x1&#")); System.out.println(regexText("10248Zgk@")); System.out.println(regexText("102xfas44dsfdhd48Zgk@")); } public static boolean regexText(String value) { String all = "[\\p{Graph}]{0,}"; StringBuilder b = new StringBuilder(); b.append("(" + all + "[0-9]+" + all + "[a-z]+" + all + "[A-Z]+" + all + ")"); b.append("|"); b.append("(" + all + "[0-9]+" + all + "[A-Z]+" + all + "[a-z]+" + all + ")"); b.append("|"); b.append("(" + all + "[a-z]+" + all + "[0-9]+" + all + "[A-Z]+" + all + ")"); b.append("|"); b.append("(" + all + "[a-z]+" + all + "[A-Z]+" + all + "[0-9]+" + all + ")"); b.append("|"); b.append("(" + all + "[A-Z]+" + all + "[a-z]+" + all + "[0-9]+" + all + ")"); b.append("|"); b.append("(" + all + "[A-Z]+" + all + "[0-9]+" + all + "[a-z]+" + all + ")"); return value.matches(b.toString()) && value.matches("[\\p{Graph}]{8,16}"); } }


    运行结果为
    true
    false
    false
    false
    false
    false
    true
    false


    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhj92lxs
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 07:47:269楼 得分:0
    mark
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chenhongxin
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 07:57:5210楼 得分:5
    value.matches("^(?=.*\\p{Punct})(?=.*\\p{Alnum}).{8,16}$");
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zidasine
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 08:16:4311楼 得分:0
    mark
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tteesstt
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 08:59:4512楼 得分:0
    请注意需求的第三条
    必须有大写,小写字母和数字,是同时含有。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • joejoe1991
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 09:10:0313楼 得分:0
    引用 12 楼 tteesstt 的回复:
    请注意需求的第三条
    必须有大写,小写字母和数字,是同时含有。


    不好意思,忽略了"同时"了. 下面这样行不行?

    Java code
    public static void main(String[] args) { System.out.println(regexText("")); System.out.println(regexText("123")); System.out.println(regexText("A4783")); System.out.println(regexText("zA25$4783")); System.out.println(regexText("z457E{")); System.out.println(regexText("524754x1&#")); System.out.println(regexText("10248Zgk@")); System.out.println(regexText("102xfas44dsfdhd48Zgk@")); System.out.println(regexText("xfAs.!.dsf5dhdoo")); } public static boolean regexText(String value) { return value.matches("^(?=.*\\p{Punct})(?=.*\\p{Lower})(?=.*\\p{Upper})(?=.*\\p{Digit}).{8,16}$"); }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xuejelly
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 09:14:5514楼 得分:0
    mark
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • joejoe1991
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 09:15:5315楼 得分:0
    晕,又看错了...

    2)允许含有特殊字符:! $ % & \ () - / ; < ? [] ^ {}

    看成必须了..
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jishu_vip
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 09:18:3816楼 得分:0
    mark
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jyq0105
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 09:26:5117楼 得分:5
    "^(?=.*\\p{Punct})(?=.*\\p{Lower})(?=.*\\p{Upper})(?=.*\\p{Digit}).{8,16}$"
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yetaodiao
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 09:32:2018楼 得分:0
    public class T {
      public static void main(String[] args) {
        System.out.println(regexText("13a4C5fdsfiaf"));
        System.out.println(regexText("123"));
        System.out.println(regexText("A47c83"));
        System.out.println(regexText("ZA25$4783"));
        System.out.println(regexText("z457E{"));
        System.out.println(regexText("524754x1&#"));
        System.out.println(regexText("10248Zgk@"));
        System.out.println(regexText("102xfas44dsfdhd48Zgk@"));
      }

      public static boolean regexText(String value) {
        String all = "[\\p{Graph}]{0,}";
        StringBuilder b = new StringBuilder();
        b.append("(" + all + "[0-9]+" + all + "[a-z]+" + all + "[A-Z]+" + all + ")");
        b.append("|");
        b.append("(" + all + "[0-9]+" + all + "[A-Z]+" + all + "[a-z]+" + all + ")");
        b.append("|");
        b.append("(" + all + "[a-z]+" + all + "[0-9]+" + all + "[A-Z]+" + all + ")");
        b.append("|");
        b.append("(" + all + "[a-z]+" + all + "[A-Z]+" + all + "[0-9]+" + all + ")");
        b.append("|");
        b.append("(" + all + "[A-Z]+" + all + "[a-z]+" + all + "[0-9]+" + all + ")");
        b.append("|");
        b.append("(" + all + "[A-Z]+" + all + "[0-9]+" + all + "[a-z]+" + all + ")");
        return value.matches(b.toString()) && value.matches("[\\p{Graph}]{8,16}");
      }
    }


    :! $ % & \ () - / ; < ? [] ^ {}
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • joejoe1991
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 09:36:4819楼 得分:0
    这下应该没问题了.

    Java code
    public static void main(String[] args) { System.out.println(regexText("")); System.out.println(regexText("123")); System.out.println(regexText("A4783")); System.out.println(regexText("zA25$4783")); System.out.println(regexText("z4uu3j57E{")); System.out.println(regexText("524754x1&#")); System.out.println(regexText("10248Zgk@")); System.out.println(regexText("102xfas44dsfdhd48Zgk@")); System.out.println(regexText("xfAs!dsf5dh&doo")); System.out.println(regexText("xfAsmdsf5dhdoo")); } public static boolean regexText(String value) { return value.matches("^(?=.*\\p{Lower})(?=.*\\p{Upper})(?=.*\\p{Digit})(.((?<!\\p{Punct})|(?<=[-!$%&()/;<?{}\\[\\]\\\\^]))){8,16}$"); }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • joejoe1991
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 09:37:3920楼 得分:0
    Java code
    false false false true true false false false true true
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lisl2003
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 09:42:5321楼 得分:0
    拜一下上面给出代码的哥哥们
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cexo821
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 13:30:5922楼 得分:0
    不会那东东,mark
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ldy214
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 13:47:5723楼 得分:0
    正则,还没有自己写过。常用的搜搜,
    特定的,lz 加油!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sagezk
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 15:19:5124楼 得分:0
    !markit!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • serryzhao
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 15:21:0925楼 得分:0
    引用 9 楼 zhj92lxs 的回复:
    mark
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bao110908
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

      4

    发表于:2008-07-16 17:56:0026楼 得分:100
    Java code
    import java.util.regex.Pattern; public class Test01 { public static void main(String[] args) { String[] strs = { "", "123", "A4783", "zA25$4783", "z4uu3j57E{", "524754x1&#", "10248Zgk@", "102xfas44dsfdhd48Zgk@", "xfAs!dsf5dh&doo", "xfAsmdsf5dhdoo" }; // 限定条件 final String CONDITION = "(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)"; // 允许出现的字符 final String SPECIAL_CHAR = "[-A-Za-z0-9!$%&()/;<?{}\\[\\]^\\\\]"; // 数量 final String QUANTITY = "{8,16}"; Pattern pattern = Pattern.compile(CONDITION + SPECIAL_CHAR + QUANTITY); for(String str : strs) { System.out.println(pattern.matcher(str).matches()); } } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • joejoe1991
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 19:17:0927楼 得分:0
    晕,为什么都偷我的数据??
    鄙视!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bao110908
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

      4

    发表于:2008-07-16 21:42:2328楼 得分:0
    嗯,接受鄙视,自已进小黑屋去……
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jdlsfl
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 22:08:3429楼 得分:0
    joejoe1991 强人
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chenyanpan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 22:08:4630楼 得分:0
    正则表达式,不懂,但还是回复一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chenyanpan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 22:12:0231楼 得分:0
    我发现老紫竹很厉害!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • power_115
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 22:32:4532楼 得分:0
    xuexi
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tteesstt
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-16 22:56:4033楼 得分:0
    请 火龙果 到 http://topic.csdn.net/u/20080716/22/80cdd418-a0e9-4e7e-8435-df6d4bc11c4a.html

    给解释一下您的正则好吗?

    拜托了!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gauppo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-03 18:39:3134楼 得分:0
    learning
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lonelyscud
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-03 22:36:3235楼 得分:0
    新手学习,楼上的都好复杂。。。

    新手刚刚学习,只能支持下解答的各位哥哥姐姐了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fulton_xc
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-04 10:35:3036楼 得分:0
    学习
    修改 删除 举报 引用 回复