`
zhousuying
  • 浏览: 115216 次
  • 性别: Icon_minigender_2
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

正则表达式 匹配回车转

阅读更多
今天在Java中想使用正则表达式来获取一段文本中的任意字符。于是很随意得就写出如下匹配规则:
(.*)
结果运行之后才发现,无法获得换行之后的文本。于是查了一下手册,才发现正则表达式中,“.”(点符号)匹配的是除了换行符“\n”以外的所有字符。同时,手册上还有一句话:要匹配包括 '\n' 在内的任何字符,请使用像 '[.\n]' 的模式。于是我将正则表达式的匹配规则修改如下:
([.\n]*),当然,如果是在java程序中直接写到话,需要改为([.\\n]*)
结果再次运行程序,发现什么内容也取不到了。我百思不得其解,又将其修改为如下规则:
([.|\n]*) 以及 ([\n.]*)
结果还是不行,什么内容都取不到。看来点符号和换行符卯上劲了~
然后上网一查,虽然没有查出上述规则到底是什么地方出问题了,但是查出了一个解决办法,经过一试,果然可以匹配包括换行符在内的任意字符,以下为正确的正则表达式匹配规则:
([\s\S]*)
同时,也可以用 “([\d\D]*)”、“([\w\W]*)” 来表示。

在文本文件里, 这个表达式可以匹配所有的英文
/[ -~]/
这个表达式可以匹配所有的非英文(比如中文)
/[^ -~]/
/是VI里用的. 你在editplus或程序里不需要/

BufferedReader br=new  BufferedReader(new InputStreamReader(System.in,"UTF-8"));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out,"UTF-8"));
bw.write("请输入:");
bw.flush();
String str=br.readLine();
bw.write("您输入的数据为:"+str);


显示结果:

璇疯緭鍏ワ細ceshi 测试
鎮ㄨ緭鍏ョ殑鏁版嵁涓猴細ceshi 锟斤拷锟斤拷

llnotice 写道
new OutputStreamWriter(System.out,"UTF-8"));
    不是创建使用指定字符集的 OutputStreamWriter吗。

OutputStreamWriter(OutputStream out)
          创建使用默认字符编码的 OutputStreamWriter。

如果用第二个构造器的话,他使用默认的字符集(我这里是GBK),能够理解。  现在我已经用第一个构造器了,为什么不能改字符集呢?


因为控制台读进来的字符是用GBK编码的,而你用UTF-8去解码,得到的当然是乱码了~
同样控制台输出的时候需要的是GBK编码的流,而你是用UTF-8编码的,乱码also


介绍乱码  http://www.ibm.com/developerworks/cn/java/java_chinese/index.html

http://hi.baidu.com/linjk03/blog/item/10023afad8303cd9b48f311a.html 乱码问题


分享到:
评论

相关推荐

    正则表达式

    上面的正则表达式依然匹配单个字符,这是因为还未在正则表达式中使用”通配符”,“通配符”是可以匹配多个字符的特殊字符。正则表达式中”通配符”远远超出了普通通配符的功能,它们被称为预定义字符:例如 1).:...

    javascript 正则表达式(一)

    正则表达式的直接变量字符: 字符 匹配 \o NUL字符 \t 制表符 \n 换行符 \v 垂直制表符 \f 换页符 \r 回车 \xnn 由十六进制nn指定的拉丁符,比如:\x0A等价于\n \uxxxx unicode字符 \cX 控制字符^X   ...

    正则表达式教程

    正则表达式教程  正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 <br>列目录时, dir *....

    java 正则表达式

    下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序: function IP2V(ip){re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式if(re.test(ip)){return RegExp.$1*Math.pow(255,3))+...

    正则表达式30分钟入门教程

    \d{8}这个表达式匹配3位区号的电话号码,其中区号可以用小括号括起来,也可以不用,区号与本地号间可以用连字号或空格间隔,也可以没有间隔。你可以试试用分枝条件把这个表达式扩展成也支持4位区号的。 \d{5}-\d{4}|...

    正则表达式大全

    对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*"。 ^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a" $ 匹配一个输入或一行的结尾,/a...

    正则表达式测试工具.zip

    输入待测字符串与正则表达式,按回车显示匹配结果列表,对于正则表达式相关的学习、练习以及开发,十分实用。

    C#中正则表达式与回车换行符问题

    C#中,读取文本文件内容,里面往往有许多回车换行符(“\r\n”),虽然一般不可见,但却实实在在的存在。...使用正则表达式: WT\s+(?<WT>.+)$ ,结果是拿不到匹配值。原因是读取到的文本内容,里面有好多回车换行符

    Python松散正则表达式用法分析

    (如果你想在松散正则表达式中匹配一个空格符,你必须在它前面添加一个反斜线符号对他进行转义) 2. 忽略注释。在松散正则表达式中的注释和在普通Python代码中的一样:开始于一个#符号,结束于行尾。这种情况下,采用...

    正则表达式 快速参考手册(CHM)+ RegexTester工具

    (exp)yes|no) 把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no (?(exp)yes) 同上,只是使用空表达式作为no (?(name)yes|no) 如果命名为name的组捕获到了内容,使用yes作为...

    Java中的正则表达式 -- 示例详解

    大家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。正则...

    PHP100视频教程 38:PHP中正则表达式学习及应用(三)

    $ \b 边界处理第三| 条件处理第四最后按照运算顺序计算匹配2、正则表达式模式修正符i 正则内容在匹配时候不区分大小写(默认是区分的)m 在匹配首内容或者尾内容时候采用多行识别匹配S 将转义回车取消是为单行匹配...

    javascript 数字的正则表达式集合

    说明:IE6.0、IE7.0、IE8.0、Firefox/3.0.11下测试通过 ... 您可能感兴趣的文章:JS正则表达式验证数字代码js限制文本框只能输入数字(正则表达式)js正则表达式匹配数字字母下划线等js中判断数字\字母\中文的正则表达式

    C#正则表达式学习

    符下两ows表研究室的火热,当晨在“@”虽然并非C#正则表达式的“成员”,但是它经常与C#正则表达式出双入对。“@”表示,跟在它后面的字符串是个“逐字字符串”,不是很好理解,举个例子,以下两个声明是等效的: ...

    js代码-正则表达式 匹配至少有一个非空白字符并且不超过指定长度

    js代码-正则表达式 匹配至少有一个非空白字符并且不超过指定长度

    正则表达式.号元字符(除了回车符\r和换行符\n)

    正则表达式.号元字符: 点号(.)元字符可以匹配除了回车符(\r)和换行符(\n)之外的任意字符。 语法结构: 构造函数方式: new RegExp(".") 对象直接量方式: [JavaScript] 纯文本查看 复制代码运行代码 /./ 浏览器支持: IE...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    * Summary of regular-expression constructs 正则表达式结构简介: * Construct Matches * Characters 字符: * x The character x x 字符 x * \\ The ...

    正则表达式完整整理总结,带实例演示,强烈建议收藏!!!

    常用正则表达式匹配练习工具的网址:https://regex101.com/ 练习语言使用的是python \n表示换行,newline \r表示回车,return \t表示Tab \0表示空字符,none、NUll… \s表示所有空白字符 \f表示换页字符,form-feed ...

    PHP100视频教程 37:PHP中正则表达式学习及应用(二).rar

     匹配内容的0次1次或多次,但不包含回车换行 匹配前一个内容的1次或多次 ?匹配前一个内容的0次或1次 | 选择匹配类似PHP中的| (因为这个运算符合是弱类型导致前面最为整体匹配) ^ 匹配字符串首部内容 $ ...

Global site tag (gtag.js) - Google Analytics