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

正则表达式匹配“或”
没学号正则,对“|”掌握一知半解
(.|[^\\:]*)\\:
我要匹配的是中英文的冒号 上面是匹配到英文冒号的格式
问题一:如何在上面的基础上增加匹配中文的冒号。
问题二:请问“|”的顺序,如 ABC|D 是ABC或D还是ABC或ABD,这应该涉及到正则表达式的顺序,求指教
分全悬赏了
正则表达式 ”或“匹配

------解决方案--------------------
第一个
String regex3="(.
------解决方案--------------------
[^\\:]*)[\\:
------解决方案--------------------
:]";//你的做个修改,加一个
------解决方案--------------------
就可以
System.out.println(Pattern.compile(regex3).matcher("gewABge:").matches());
第二个
看你怎么用了,
特意做了几个例子,你看一下

String regex=".*?[:
------解决方案--------------------
:]+";//或者直接用ascii码
System.out.println(Pattern.compile(regex).matcher("gewge:").matches());
String regex2=".*?(ABC
------解决方案--------------------
D).*?";//有ABC或者D
System.out.println(Pattern.compile(regex2).matcher("gewABCge:").matches());
String regex3=".*?[ABC
------解决方案--------------------
D].*?";//有A/B/C/D其中一个就可以
System.out.println(Pattern.compile(regex3).matcher("gewCge:").matches());
String regex4="(.
------解决方案--------------------
[^\\:]*)[\\:
------解决方案--------------------
:]";//你的做个修改
System.out.println(Pattern.compile(regex4).matcher("gewABge:").matches());

------解决方案--------------------
引用:
Quote: 引用:

第一个
String regex3="(.
------解决方案--------------------
[^\\:]*)[\\:
------解决方案--------------------
:]";//你的做个修改,加一个
------解决方案--------------------
就可以
System.out.println(Pattern.compile(regex3).matcher("gewABge:").matches());
第二个
看你怎么用了,
特意做了几个例子,你看一下

String regex=".*?[:
------解决方案--------------------
:]+";//或者直接用ascii码
System.out.println(Pattern.compile(regex).matcher("gewge:").matches());
String regex2=".*?(ABC
------解决方案--------------------
D).*?";//有ABC或者D
System.out.println(Pattern.compile(regex2).matcher("gewABCge:").matches());
String regex3=".*?[ABC
------解决方案--------------------
D].*?";//有A/B/C/D其中一个就可以
System.out.println(Pattern.compile(regex3).matcher("gewCge:").matches());
String regex4="(.
------解决方案--------------------
[^\\:]*)[\\:
------解决方案--------------------
:]";//你的做个修改
System.out.println(Pattern.compile(regex4).matcher("gewABge:").matches());

(.
------解决方案--------------------
[^\\:]*)[\\:
------解决方案--------------------
:] 第一个中括号中也需要匹配中文的冒号 请问是不是这样(.
------解决方案--------------------
[^[\\:
------解决方案--------------------
:]]*)[\\:
------解决方案--------------------
:]

正则,子自己多试试就直接对不对了,
其实:不属于特殊字符,不需要加//转移吧
你那个第一个括号里内容其实我挺不理解的,所以我才写了一个我的理解的。
.是匹配任意字符,
------解决方案--------------------
或者,匹配非:字符那么第二个条件就没必要了吧。
(.
------解决方案--------------------
[^[\\:
------解决方案--------------------
:]]*)[\\:
------解决方案--------------------
:] 至于这一个,尤其是这一部分
[^[\\:
------解决方案--------------------
:]]
[]里面嵌套着[],貌似一般没有这样用的,
结果我感觉应该也不对。
你到底第一个括号里面想匹配:还是不需要有: