查找中文的正则表达式怎么写? ( 积分: 50 )

  • 主题发起人 主题发起人 luckymanman
  • 开始时间 开始时间
L

luckymanman

Unregistered / Unconfirmed
GUEST, unregistred user!
请问有没有支持这样搜索的编辑器,就是我想查找所有以双引号括住,里面至少包含一个中文字符的所有字符串.
如:
"ssf12d好3422222222,342?"
"大富翁论坛"
"喹,23 ?"
上面的都要搜索出来,下面的则不要出来
"342kkkkkkkkkhoooo"
"hi"

这个正则如何写?delphi编辑器可以搜索吗?
 
请问有没有支持这样搜索的编辑器,就是我想查找所有以双引号括住,里面至少包含一个中文字符的所有字符串.
如:
"ssf12d好3422222222,342?"
"大富翁论坛"
"喹,23 ?"
上面的都要搜索出来,下面的则不要出来
"342kkkkkkkkkhoooo"
"hi"

这个正则如何写?delphi编辑器可以搜索吗?
 
中文的字符首字节是大于 0xA0 的
 
这个谁都知道,但怎么按我的要求查找呢?
另,有什么好的正则表达式控件吗?俄国人写的那个TRegExpr对中文支持不太好。
 
所有中文(不包括标点,有可能产生乱码):
([/xB0-/xF7][/xA1-/xFE])+
所有GB2312-80编码
([/xA1-/xFE][/xA1-/xFE])+
所有中文空格
(/xA1/xA1)+

英文标点:[/x20-/x2F/x3A-/x40/x5B-/x60/x7B-/x7E]
 
个人认为delphi下比较好的正则表达式控件是TPerlRegEx
 
好不好,得看速度如何
 
to piao40993470:TPerlRegEx哪有下载的?
to lich:你认为哪个好呢?
 
我推荐使用 pcre-5.0
你可以用BCB编译后,用Delphi调用,速度和支持的功能都是非常好的
boost 上面的性能测试,是这么说的:

http://www.boost.org/libs/regex/doc/performance.html
http://www.boost.org/libs/regex/doc/vc71-performance.html
http://www.boost.org/libs/regex/doc/gcc-performance.html

Averages
The following are the average relative scores for all the tests: the perfect regular expression library would score 1, in practice any small number (say less that 4 or 5) is pretty good.

GRETA |GRETA(non-recursive mode)| Boost |Boost + C++ locale| POSIX |PCRE
2.31619 6.14203 2.30668 1.94363 124.752 2.09365

Averages
The following are the average relative scores for all the tests: the perfect regular expression library would score 1, in practice anything less than 2 is pretty good.

Boost |Boost + C++ locale| POSIX |PCRE
1.4503 1.49124 108.372 1.56255

pcre 的得分都是非常优秀的,而且还是用纯C编写的,
很容易在Delphi中调用,
只不过,还需要一点封装

这个也不错, 可以试试
TRegExpr 0.952
http://regexpstudio.com/TRegExpr/TRegExpr.html

TPerlRegEx
http://www.regular-expressions.info/delphi.html
http://www.regular-expressions.info/download/TPerlRegEx.zip
 
谢谢lich,我试试你说的东西,另外,我知道EmEditor支持正则表达式比较全,有办法写出我的要求的吗?
 
多人接受答案了。
 
后退
顶部