在java中怎么表达一个子集?
当然普通字符的子集是很好表达的,但是考虑下面一种情况:
我想找一个字符串中的单词cat,可以使用单词界定符,正则表达式可以写成 \\bcat\\b
但是现在我想找到以非双引号界定的单词cat,也就是说两遍应该还是单词界定符,但是这个单词界定符还不能是双引号,也就是说是\b的一个子集。应该怎么表达?
当然普通字符的子集是很好表达的,但是考虑下面一种情况:
我想找一个字符串中的单词cat,可以使用单词界定符,正则表达式可以写成 \\bcat\\b
但是现在我想找到以非双引号界定的单词cat,也就是说两遍应该还是单词界定符,但是这个单词界定符还不能是双引号,也就是说是\b的一个子集。应该怎么表达?
解决方案 »
- java简单问题,狂散分了
- 什么原因让我看不到我加的两个JTable
- 问一个关于Jtable的问题!
- 关于设计模式在j2sdk中的应用
- java如何调用windows的bat文件
- 如何处理这个异常?(简单问题,给50分!在线等)
- GridBagLayout好繁啊,有没有好的方法学习?
- Oracle
- 谁知道sun ONE 干啥的吗?
- 各位大虾,为什么我的java程序能通过编译,但是在用java命令运行程序的时候却老是报错“Exception in thread "main" java.lang.NoClassDe
- 请大侠帮忙
- 奇怪问题,请高手指点,Illegal operation on empty result set.
String pattern="[^"]cat[^"]";
算了我也迷糊了
给个例子吧
但有点问题
因为\b包含了\\W以及字符串的开头或结尾,比如"cat"就能用\bcat\b匹配而不能用\Wcat\W匹配
同时,在取并集或交集的时候(上面的[..&&..]),必须是字符的集合,而\b不仅包含了字符\W,还包含了非字符(字符串的开头和结尾)
所以,上面不能用\\b而只能用\\W
这样就会导致以cat开头或结尾的符合要求的字符串匹配不出来暂时还没想出能完全匹配的表达式,呵呵
也就是把用引号、不用引号的cat捕获后,然后提取出cat那个组,或外围的组。