正则表达式通过Unicode属性匹配

原文链接:http://zochen.iteye.com/blog/690716

Unicode 编码并不只是为某个字符简单定义了一个编码,而且还将其进行了归类。

\pP 其中的小写 p 是 property 的意思,表示 Unicode 属性,用于 Unicode 正表达式的前缀。

大写 P 表示 Unicode 字符集七个字符属性之一:标点字符。

其他六个是

L:字母; 
M:标记符号(一般不会单独出现); 
Z:分隔符(比如空格、换行等); 
S:符号(比如数学符号、货币符号等); 
N:数字(比如阿拉伯数字、罗马数字等); 
C:其他字符

上面这七个是属性,七个属性下还有若干个子属性,用于更进一步地进行细分。

Java 中用于 Unicode 的正则表达式数据都是由 Unicode 组织提供的。

Unicode 正则表达式标准(可以找到所有的子属性) 
http://www.unicode.org/reports/tr18/

各 Unicode 字符属性的定义,可以用一看看某个字符具有什么属性。 
http://www.unicode.org/Public/UNIDATA/UnicodeData.txt

这个文本文档一行是一个字符,第一列是 Unicode 编码,第二列是字符名,第三列是 Unicode 属性, 
以及其他一些字符信息。

时间: 2024-08-14 19:59:58

正则表达式通过Unicode属性匹配的相关文章

正则表达式、常用的匹配总结

1.正则表达式:我的理解就是,记录文本规则的代码,我主要运用它在.net表单验证中. 2.学习正则表达是的工具下载链接:http://www.unibetter.com/deerchao/downloads/RegexTester.zip 3.工具使用说明: 4.正则表达式有多种不同的风格.下表是在PCRE中元字符及其在正则表达式上下文中的行为的一个完整列表: 字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个向后引用.或一个八进制转义符.例如,“n”匹配字符“n”.“\n”

正则表达式 小括号导致匹配项重复

正则表达式 小括号导致匹配项重复,暂时没找到原因, var reg4=/([0-9])/; var num="$999"; document.write(num.match(reg4) + "<br />"); //9,9 两次 var reg5=/[0-9]/; var num = "$999"; document.write(num.match(reg5) + "<br />"); //9 一次 后

常用的正则表达式(例如:匹配中文、匹配html)(转载)

匹配中文字符的正则表达式: [u4e00-u9fa5]    评注:匹配中文还真是个头疼的事,有了这个表达式就好办了  匹配双字节字符(包括汉字在内):[^x00-xff]  评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)  匹配空白行的正则表达式:ns*r  评注:可以用来删除空白行  匹配HTML标记的正则表达式:<(S*?)[^>]*>.*?|<.*? />  评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能

Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配

Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配 //贪婪匹配 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Create(nil);   reg.Subject := '<html><head><title>标题</title></head><body>内容</body></html>';   reg.RegEx  := '<.*>';

Delphi 正则表达式语法(9): 临界匹配 - 也叫&quot;预搜索&quot;与&quot;反向预搜索&quot;

Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索" //匹配右边 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Create(nil);   reg.Subject := 'Delphi 6; Delphi 7; Delphi 2007; Delphi Net';   reg.RegEx  := 'Delphi (?=2007)'; // ?=   reg.Replacement :

多对多的属性对应表如何做按照类别的多属性匹配搜索

电商设计中常用到的属性对应表需要做按照类别的多属性匹配功能,举例建表如下 CREATE TABLE goods_attr ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', `goods_id` int(11) DEFAULT '0' COMMENT '商品id', `type` int(11) DEFAULT '0' COMMENT '属性类型:1:商品类型 2:支持语言 3:支持平台', `value` varcha

廖雪峰Java9正则表达式-2正则表达式进阶-3分组匹配

匹配电话号码 匹配成功后,如果提取想要的字符串 使用(...)可以分组:"^(\d{3,4})\-(\d{6,8})$" String.matcher vs Pattern.matcher public static void main(String[] args){ String regex = "^\\d{3,4}\\-\\d{6,8}"; System.out.println("010-123456789".matches(regex));

正则表达式——Unicode 属性列表

7.7.1 Unicode Property ??每个 Unicode 字符都只能属于一个 Unicode Property.所有的 Unicode Property 共分为7大类,30小类.大类的名字只有1个字母,小类的名字则不知1个字母,开头字母与所在大类的名字相同,小类包含的字符都属于它所在的大类. .tg { border-collapse: collapse; border-spacing: 0 } .tg td { font-family: Arial, sans-serif; fo

正则表达式的环视和匹配

环视 环视匹配的最终结果就是一个位置,有四种类型的环视: (?=Expression) 顺序肯定环视,表示所在位置右侧能够匹配Expression (?!Expression) 顺序否定环视,表示所在位置右侧不能匹配Expression (?<=Expression) 逆序肯定环视,表示所在位置左侧能够匹配Expression (?<!Expression) 逆序否定环视,表示所在位置左侧不能匹配Expression 可以用以下两个正则表达式理解环视: (1)字母.数字.特殊符号全部出现,至少