feynmand 发表于 2009-5-18 20:02:52

【原创】正则表达式中符号的表示

本帖最后由 messenger 于 2009-5-21 22:35 编辑

最近在用matlab中的正则表达式,感觉虽然正则表达式很多设置是基于英文来设计的,但是在对中文的处理中也是很好用的。在使用过程中发现中文这方面的资料很少,而help中有些地方表述的并不完全。例如在语句中查找括号“(”,需要用到十六进制\xN or \x{N}表示。但是括号这些符号究竟对应于哪个十六进制数却没有说明。研究了一会儿终于发现,这个十六进制数是符号对应的ascII码转化成的。这里和大家分享一下。
例如:将语句中小括号内的语句去掉:
str='潮王路225号红(石中央)大厦(14层)1401-1403、15层'
regexprep(str,'\x28\w+\x29','')

ans =

潮王路225号红大厦1401-1403、15层

注意句中的符号是英文的,中文的需要查处其相对应的ASCII码,然后转换成16进制。例如:
str='潮王路225号红(石中央)大厦(14层)1401-1403、15层'
>> regexprep(str,'\xFF08\w+\x29','')

ans =

潮王路225号红大厦(14层)1401-1403、15层

以后心得多的话再给大家详细总结正则表达式的中文应用。
页: [1]
查看完整版本: 【原创】正则表达式中符号的表示