日期:2014-05-20  浏览次数:20820 次

请教高手一个正则问题!!!!!!!
例如有一个字符串“大结局” ,怎样正则匹配这样的规则 :当这个字符串以 )、)或空格结尾时,后面可以跟其他任意字符(例如 :“大结局)abc11”),当这个字符串后面跟的不是这三种符号时,那他后面什么都不能跟。
------解决方案--------------------

String reg = "大结局($
------解决方案--------------------
[)、)].*)";
System.out.println("大结局)abc11".matches(reg));
System.out.println("大结局)abc11".matches(reg));
System.out.println("大结局、abc11".matches(reg));
System.out.println("大结局aabc11".matches(reg));
System.out.println("大结局局abc11".matches(reg));
System.out.println("大结局Cabc11".matches(reg));

没怎么看懂,什么是这样?
------解决方案--------------------
引用:

引用:
Java code?1234567String reg = "大结局($
------解决方案--------------------
[)、)].*)";


感觉这样好理解一点:【大结局([\\s
------解决方案--------------------

------解决方案--------------------
)].*)+】
空格\\s,大括号),小括号)任意一种情况:【[\\s
------解决方案--------------------

------解决方案--------------------
)]】
出现上面三种情况,后面可以任意加东西【[\\s
------解决方案--------------------

------解决方案--------------------
)].*】
【大结局】要不只有自己,要不后面跟上面的字串,就是说上面的情况可有可无,使用【+】
因此有【大结局([\\s
------解决方案--------------------

------解决方案--------------------
)].*)+】
-----------------------------------------感觉这样直观一些


        String reg = "大结局([\\s
------解决方案--------------------

------解决方案--------------------
)].*)+";
        System.out.println("大结局)abc11".matches(reg));
        System.out.println("大结局)abc11".matches(reg));
        System.out.println("大结局 abc11".matches(reg));
        System.out.println("大结局abc11".matches(reg));


------解决方案--------------------
是“大结局”后面跟那些符号还是最后是那些符号?
如果是后面紧跟那些符号的话 String reg = "大结局( 
------解决方案--------------------

------解决方案--------------------
\\)).*";
如果是最末尾的话  String reg = "大结局.*?( 
------解决方案--------------------

------解决方案--------------------
\\))";
------解决方案--------------------
"大结局([)),])";