我用java自带的正则表达式工具去匹配空格的时候,会有不能匹配的情况.
想问一下,空格有多少种?以前换行的\r\n和\r和\n就把我折磨得够呛.
"\s"匹配的是哪一种空格?
想问一下,空格有多少种?以前换行的\r\n和\r和\n就把我折磨得够呛.
"\s"匹配的是哪一种空格?
解决方案 »
- 很急!很急!ArrayList里的值每次都被覆盖了,该怎么解决?在线等
- JAVA 读文件的一个问题
- 请问这个class如何修改为servlet?
- 求jspSmart组件
- 请问下面的字符串我要从<?xml version="1.0"开始截取到最后</soap:Envelope>怎么实现,用substring只能从哪个字符开始
- java初学-新建时每次 都有句 package 什么的..
- 十里开源最新决策『十里开源__http://www.opensource.com.cn』
- 关于PKCS#12如何构造的问题
- websphere3.5安装不上,高手帮忙(急!!!)。
- 求一正则表达式,类map的实现
- 如何将JTextField实例设置只读
- 接口如何实现多继承
\n 新行(换行)符 ('\u000A')
\r 回车符 ('\u000D')
\f 换页符 ('\u000C')
\a 报警 (bell) 符 ('\u0007')
\e 转义符 ('\u001B')
\cx 对应于 x 的控制符
....看来只能用负向零宽断言了.....不过你确定是用"?!"前看的么?我怎么觉得应该是后看的啊?负向零宽断言似乎在有"."的情况下不太好用..
比如(?<!abc).*似乎和没加一样,有人知道是为什么么?
全角空格:^( )+|^[\s ]+|( )+$|[\s ]+$/g
不过"?<!"和"."组合的时候确实有点弄不懂.
是不是这两个和在一起的时候?<!就起不到作用了.
比如(?<!abc).*可以匹配到什么样的?为什么?
你说的那篇文章不错~还有什么好的关于regexp的文章不?我这有篇
http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm
我觉得还是很不错的.
这个跟 .* 没有区别。.* 以贪婪方式进行最大的匹配,而且在吃掉整个字符串后,开始部分的前面肯定不是 abc 了(前面是空)。
因此,(?<!abc).* 与 .* 没有区别。但是 (?<=abc).* 这样就有区别了,例如字符串是 abc123456 那这个表达式就能匹配 123456 了。
看看它是如何进行匹配的。1,先对 (?<=abc) 进行处理,由于 (?<=abc) 匹配的是零宽度,因此从左边一个一个地走过去,直到
走到字母 c 的后面,OK,这时与 (?<=abc) 进行匹配了。
2,再对 .* 进行处理,从字母 c 的后面开始,由于 .* 能匹配几乎所有的字符。因此,表达式匹配完成,
匹配的结果就是 123456 了。PS:那篇文章不错,不过有些语法在 Java 中不能使用,比如:内嵌注释、命名捕获、递归匹配等,
使用的时候注意一下。哈哈,我上面贴的那个链接,是人家看《精通正则表达式》这本书的读书笔记。说到这,
要顺便提一下这本书,这本书可谓是正则表达式的登峰之作了,已经没有人再敢涉及了。 这本书中文版在这里有一章的试读下载:http://www.oreilly.com.cn/book.php?bn=978-7-121-04684-1另外这个站点上有详细的正则表达式教程,可惜是英文的 http://www.regular-expressions.info这个上面有好多现成的表达式 http://regexlib.com
我似乎有那本书的英文版...看着比较累..我找找实体书看看.
?<!那个我是以为和?<=用法一样,有点想当然了.
水平制表符(\t)
竖直制表符
回车(\r)
换行(\n)
换页符(\f)
大家帮忙看看 !!
public static void main(String[] args) {
Pattern p = Pattern.compile("\\b[a-zA-Z]+?\\b");
String s = "aaa bbb jj2rjo jjj 2ii oo8d 7haohsie";
Matcher m = p.matcher(s);
while (m.find()) {
p(m.group());
}
}找到了aaa bbb jjj 我想问的是开头的aaa 哪来的\\b[a-zA-Z]+?\\b 如果有结尾有也一样\\b[a-zA-Z]+?\\b