- 浏览: 255379 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (232)
- 瞎扯两句 (8)
- 操作系统 (5)
- 工作笔记 (33)
- 设计模式 (1)
- java (57)
- Java IDE (7)
- hibernate (17)
- oracle (46)
- ms sql (2)
- spring (9)
- struts2 (0)
- javascript (16)
- java_code (2)
- java之集合 (2)
- java之线程 (4)
- java之IO (4)
- java之虚拟机 (6)
- java之异常 (0)
- EJB (4)
- XML (4)
- 数据结构-算法 (2)
- 架构设计 (5)
- 配置信息 (2)
- 阅读笔记 (6)
- IT专业英语 (1)
- PI (0)
- 单元测试 (1)
最新评论
目录
正则表达式介绍
匹配模式
字符子集
行结束符
分组和引用
Unicode支持
正则表达式语法参考
字符
逻辑操作符
向后引用
边界元字符
重复指示符
字符子集
预定义子集(元字符)
扩展子集(元字符)
扩展中文子集(元字符)
POSIX字符子集(只适用于ASCII)
Unicode块和分类
替换表达式
替换表达式
特殊字符
自定义替换表
--------------------------------------------------------------------------------
匹配模式
匹配模式指得是正则表达式引擎将以何种模式匹配字符串。
模式名称
启用,禁用
缺省启用
说明
UNIX_LINES
(?d)启用,(?-d)禁用
是
启用Unix行模式。
在此模式下,只有 '\n'被认为是行结束符。它会影响., ^, 和 $ 的行为。
CASE_INSENSITIVE
(?i)启用,(?-i)禁用
否
启用忽略大小写模式。
缺省时,忽略大小写模式只会影响 ASCII字符的匹配。 而Unicode范围的忽略大小写匹配需要通过 UNICODE_CASE 标志与本标志联合使用。
启用此模式会影响匹配性能。
COMMENTS
(?x)启用,(?-x)禁用
否
允许空格和注释出现在正则表达式中。
在此模式下,空格被忽略,以#开始的单行注释被忽略。
MULTILINE
(?m)启用,(?-m)禁用
是
启用多行模式。
In multiline mode the expressions ^ and $ match just after or just before, respectively, a line terminator or the end of the input sequence. By default these expressions only match at the beginning and the end of the entire input sequence.
DOTALL
(?s)启用,(?-s)禁用
否
让.可以匹配行结束符。
在此模式下,元字符.可以匹配行结束符。缺省不允许如此匹配。
UNICODE_CASE
(?u)启用,(?-u)禁用
否
Enables Unicode-aware case folding.
When this flag is specified then case-insensitive matching, when enabled by the CASE_INSENSITIVE flag, is done in a manner consistent with the Unicode Standard. By default, case-insensitive matching assumes that only characters in the US-ASCII charset are being matched. 启用此模式会影响性能。
CANON_EQ
(?c)启用,(?-c)禁用
否
Enables canonical equivalence.
When this flag is specified then two characters will be considered to match if, and only if, their full canonical decompositions match. The expression "a\u030A", for example, will match the string "?" when this flag is specified. By default, matching does not take canonical equivalence into account.
启用此模式会影响性能。
字符子集
字符子集可以含有别的字符子集,并且可以通过联合操作符(缺省)和交集操作符(&&)实现组合。联合操作符表示某个子集匹配它的子子集所匹配的任意字符。交集操作符表明某个字符子集只匹配它的子子集都匹配的字符。
字符子集所能够有的操作符的优先级如下,从高到低:
转义符\x
成组符 [...]
区间符 a-z
联合符 [a-e][i-u]
交集符 [a-z&&[aeiou]]
注意:在字符子集[]内部的语法根本不同于正则表达式其它部分中的语法。例如,在字符子集内部,正则表达式 . 失去了它原有的含义,而是成了一个匹配.的元字符。
行结束符
行结束符是一个或两个字符序列,用以表明输入字符序列中一行的结束。下面的字符被认为是行结束符:
一个换行符('\n')。
一个回车符加上一个换行符("\r\n")。
一个单独的回车符('\r')。
代表下一行的字符('\u0085')。
行分隔符('\u2028'),Unicode中被定义。
一个分段符('\u2029),Unicode中被定义。
如果 UNIX_LINES 模式被启用,则只有换行符被认为是行结束符。
如果 MULTILINE 模式被启用,。
分组和引用
字符分组以它们的左括号的出现顺序来排序。例如在表达式((A)(B(C))),有四个分组:
((A)(B(C)))
(A)
(B(C))
(C)
第0组永远表示表达式本身。
分组采用这样的命名方式,是因为,在一次匹配过程中,正则表达式会被匹配多次。以前的匹配子序列有可能在将来被使用;或者在匹配结束时,程序有可能需要重新获得所有匹配的子字符序列。
对于正则表达式中的某个分组而言,永远只保留最后匹配的字符序列。如果对某个分组匹配尝试失败,则会保留上次匹配成功的字符序列。例如,对于正则表达式(a(b)?)+而言,字符序列"aba",将会让分组2匹配的字符序列为"b"。
以(?开始的分组,将不会计入分组数目,也不会被后续匹配所引用。
Unicode支持
本正则表达式匹配引擎的实现遵循了《Unicode技术报告:Unicode正则表达式指南》,实现了该指南的第二层所需的功能,但是在细微处有一些简单语法修改。
Unicode块(Block)和分类(Category)通过\p和\P通配苻表示。\p{prop}匹配含有prop的输入序列,而\P{prop}匹配不含有prop的输入序列。Unicode块通过前缀In表示,如\p{InMongolian}。Unicode分类通过可选的前缀Is表示,因此\p{L}和\p{IsL}都代表Unicode分类 letters。Unicode块和分类都可以在正则表达式子集外部和内部使用。
目前支持的Unicode块和分类是《Unicode标准,第三版》中所指定的块和分类。 Unicode块名称在《Unicode 字符数据库》的第14章被定义,文件名称叫Blocks-3.txt,但是名称中的空格被去掉了。例如"Basic Latin"成了"BasicLatin"。无论是标准化的还是非标准化的分类,都在该标准的第88页的第4-5表中被全部定义。
与Perl 5正则表达式语法对比
[TBD]
--------------------------------------------------------------------------------
正则表达式参考
--------------------------------------------------------------------------------
字符
正则表达式字符串
匹配的字符串
X
字符X,包括 CJK ExtB 区汉字
\\
反斜杠\
\0n 八进制0n代表的字符(0<=n<=7)
\0nn
八进制0nn代表的字符(0<=n<=7)
\0mnn
八进制0mnn代表的字符(0<=m<=3,0<=n<=7)
\xhh
十六进制 0xhh所代表的字符
\uhhhh
十六进制 0xhhhh所代表的字符。注意,目前尚不支持CJK ExtB区汉字。
\t
制表符('\u0009')
\n
换行('\u000A')
\r
回车('\u000D')
\a
响铃符('\u0007')
\e
取消符Escape('\001B')
\cx
x所代表的控制字符
逻辑操作符
正则表达式字符串
匹配的字符串
XY
X后面跟随Y
X|Y
X或者Y
(X)
X作为分组表达式
向后引用
正则表达式字符串
匹配的字符串
\n
第n个匹配的分组
边界元字符
边界字符
匹配的字符串
^
行首
$
行末
\b 字符边界
\B
非字符边界
\A
输入流的开始
\G
上次匹配的结束处
\Z
输入流的结束,或者是最后一个行结束符,参见行结束符。
\z
输入流的结束
重复指示符
正则表达式字符串
匹配的字符串
X?
X重复一次,或者不重复
X*
X重复0次或多次
X+
X重复1次或多次
X{n}
X重复n次,不多也不少。
X{n,}
X至少重复n次
X{n,m}
X至少重复n次,至多重复m次。
注:X{n,m}、?、*、+方式可以联合使用。
字符子集
正则表达式字符串子集
匹配的字符串
组合方式
[abc]
字符a,b或c,包括 CJK ExtB 区汉字
简单子集
[^abc]
任意非a,b或c的字符。
排除
[a-zA-Z] 从a到z,或者A到Z,包含a,z,A,Z。
区间
[a-d[m-p]]
从a到d,或者m到p,等于[a-dm-p]。
联合
[a-z&&[def]]
d,e或者f。
交集
[a-z&&[^bc]]
从a到z,除了b和c,等于[ad-z]
扣除
[a-z&&[^m-p]]
从a到z,并且不包括从m到p,等于[a-lq-z]
扣除
预定义子集(元字符)
边界字符
匹配的字符串
.
任意字符,可能匹配行结束符。
\d
数字[0-9]
\D 非数字[^0-9]
\s
空白符[ \t\n\x0B\f\r]
\S
非空白符[^\s]
\w
单词符,包含有字母和数字[a-zA-Z_0-9]
\W
非单词符,不包含有字母和数字。
扩展子集(元字符)
正则表达式字符串
匹配的字符串
扩展中文子集(元字符)
名称
块名称(\p{InXXX})
简化通配符
标准Unicode块,或者汉字列表
任意双字节字符(汉字或全角符号)
\p{InQuqnJiao}
\E
任意由GBK表示的汉字,不包括GB18030扩展部分,
以及CJK ExtB区的汉字。
任意单字节字符
\p{InFQuanJiao}
\~E
任意单字节字符。
任意全角ASCII字符
\p{InQJAscii}
\H
标准HalfwidthandFullwidthForms块
任意收录在BIG5码集中的双字节字符
\p{InBig5}
\I
Big5可编码双字节字符
匹配未收录在BIG5码集中的双字节字符 \p{InFBig5}
\~I
非Big5可编码双字节字符
匹配任意汉字(不包括符号)
\p{InHanziOrCJKExtB}
\X
任意汉字,包括GB18030扩展部分。
匹配任意汉字(不包括符号)
\p{InHanzi}
\M
任意汉字,不包括GB18030扩展部分。
匹配非汉字的双字节字符
\p{InFHanzi}
\~M
任意非汉字的双字节字符,
包括GB18030扩展部分。
地支字符
\p{InDiZhi}
\U
子丑寅卯辰巳午未申酉戌亥
匹配收录在GB码集中的双字节字符
\p{InGB}
\g
收录在GB码集中的双字节字符,
不包括GB18030扩展部分。
匹配非收录在GB码集中的双字节字符
\p{InFGB}
\~g
未收录在GB码集中的双字节字符,
不包括GB18030扩展部分。
匹配收录在GBK码集中的双字节字符
\p{InGBK}
\h
收录在GBK码集中的双字节字符,
不包括GB18030扩展部分。
匹配非收录在GBK码集中的双字节字符
\p{InFGBK}
\~h
未收录在GBK码集中的双字节字符,
不包括GB18030扩展部分。
大写希腊字母
\p{InDaXila}
\K
ΑΒΓΔΕΖΗΘΙΚΛΜΝ
ΞΟΠΡΣΤΥΦΧΨΩ
日文片假名
\p{InPianJia}
\j
标准Katakana块
日文平假名
\p{InPingJia}
\J
标准Hiragana块
小写希腊字母
\p{InXiaoXila}
\k
αβγδεζηθικλμν
ξοπρστυφχψω
数学符号
\p{InMathe}
\m
±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙
∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴
中文数字
\p{InCnDigit}
\i
〇一二三四五六七八九十百千万亿兆吉京
大写中文数字
\p{InDaCnDigit}
\N
零壹贰叁肆伍陆柒捌玖拾佰仟萬亿兆吉京
全角标点符号
\p{InQJBiaoDian}
\o
、。·ˉˇ¨〃々—~‖…‘’“”〔〕
〈〉《》「」『』〖〗【】!"'(),
-.:;<=>?[]{|}`﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚
﹛﹜﹝﹞︵︶︹︺︿﹀︽︾﹁﹂﹃﹄
︻︼︷︸︱︳︴
小写俄文字母
\p{InXiaoEWen}
\l
абвгдеёжзийклмн
опрстуфхцчшщъыьэюя
大写俄文字母
\p{InDaEWen}
\R
АБВГДЕЁЖЗИЙКЛМНО
ПРСТУФХЦЧШЩЪЫЬЭЮЯ
中文序号
\p{InCnSN}
\q
ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ
ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ
再加上Unicode标准EnclosedAlphanumerics块
天干字符
\p{InTianGan}
\T
甲乙丙丁戊己庚辛壬癸
竖排标点符号
\p{InSPBiaoDian}
\V
︵︶︹︺︿﹀︽︾﹁﹂﹃﹄︻︼︷︸︱︳︴
拼音字符
\p{InPinyin}
\y
āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑńňɡ
GBK -> 0xA8A1- 0xA8C0
只是Unicode标准LatinExtended-A块的一部分。
注音字符
\p{InZhuyin}
\Y
标准Bopomofo块
制表字符
\p{InZhiBiao}
\C
标准BoxDrawing块。
经检查发现 textpro 的算法含有部分非标
准Unicode制表符:“∟∣≒≦≧⊿═”。
POSIX字符子集(只适用于ASCII)
正则表达式字符串
匹配的字符串
\p{Lower}
小写字母[a-z]
\p{Upper}
大写字母[A-Z]
\p{ASCII}
所有的ASCII字符[\x00-\x7F]
\p{Alpha}
大小写字母[\p{Lower}\p{Upper}]
\p{Digit}
数字[0-9]
\p{Alnum}
字母数字符,包含大小写字母和数字[\p{Alpha}\p{Digit}]
\p{Punct}
标点符号,!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~之一。
\p{Graph}
可显示字符[\p{Alnum}\p{Punct}]
\p{Print}
可打印字符[\p{Graph}]
\p{Blank}
空格或者制表符[ \t]
\p{Cntrl}
控制字符[\x00-\x1F\x7F
\p{XDigit}
十六进制数字[0-9a-fA-F]
\p{Space}
空白符[ \t\n\x0B\f\r]
Unicode块和分类
块
中文名称(摘自Word XP)
代码区域
BasicLatin
基本拉丁语
\u0000-\u007F
Latin-1Supplement
拉丁语-1
\u0080-\u00FF
LatinExtended-A
拉丁语扩充-A
\u0100-\u017F
LatinExtended-Bound
拉丁语扩充-B
\u0180-\u024F
IPAExtensions
国际音标扩充
\u0250-\u02AF
SpacingModifierLetters
进格的修饰字符
\u02B0-\u02FF
CombiningDiacriticalMarks
组合用发音符
\u0300-\u036F
Greek
基本希腊语
\u0370-\u03FF
Cyrillic
西里尔语
\u0400-\u04FF
Armenian
\u0530-\u058F
Hebrew
\u0590-\u05FF
Arabic
\u0600-\u06FF
Syriac
\u0700-\u074F
Thaana
\u0780-\u07BF
Devanagari
\u0900-\u097F
Bengali
\u0980-\u09FF
Gurmukhi
\u0A00-\u0A7F
Gujarati
\u0A80-\u0AFF
Oriya
\u0B00-\u0B7F
Tamil
\u0B80-\u0BFF
Telugu
\u0C00-\u0C7F
Kannada
\u0C80-\u0CFF
Malayalam
\u0D00-\u0D7F
Sinhala
\u0D800-\uDFF
Thai
\u0E00-\u0E7F
Lao
\u0E80-\u0EFF
Tibetan
藏语
\u0F00-\u0FFF
Myanmar
\u1000-\u109F
Georgian
\u10A0-\u10FF
HangulJamo
\u1100-\u11FF
Ethiopic
\u1200-\u137F
Cherokee
\u13A0-\u13FF
UnifiedCanadianAboriginalSyllabics
\u1400-\u167F
Ogham
\u1680-\u169F
Runic
\u16A0-\u16FF
Khmer
\u1780-\u17FF
Mongolian
蒙古语
\u1800-\u18AF
LatinExtendedAdditional
\u1E00-\u1EFF
GreekExtended
\u1F00-\u1FFF
GeneralPunctuation
广义标点
\u2000-\u206F
SuperscriptsandSubscripts
\u2070-\u209F
CurrencySymbols
货币符号
\u20A0-\u20CF
CombiningMarksforSymbols
\u20D0-\u20FF
LetterlikeSymbols
类似字母的符号
\u2100-\u214F
NumberForms
数字形式
\u2150-\u218F
Arrows
箭头
\u2190-\u21FF
MathematicalOperators
数学运算符
\u2200-\u22FF
MiscellaneousTechnical
零杂技术用符号
\u2300-\u23FF
ControlPictures
\u2400-\u243F
OpticalCharacterRecognition
\u2440-\u245F
EnclosedAlphanumerics
带括号的字母数字
\u2460-\u24FF
BoxDrawing
制表符
\u2500-\u257F
BlockElements
方块图形
\u2580-\u259F
GeometricShapes
几何图形
\u25A0-\u25FF
MiscellaneousSymbols
零杂丁贝符(示意符等)
\u2600-\u26FF
Dingbats
\u2700-\u27BF
BraillePatterns
\u2800-\u28FF
CJKRadicalsSupplement
\u2E80-\u2EFF
KangxiRadicals
\u2F00-\u2FDF
IdeographicDescriptionCharacters
\u2FF0-\u2FFF
CJKSymbolsandPunctuation
CJK符号和标点
\u3000-\u303F
Hiragana
平假名
\u3040-\u309F
Katakana
片假名
\u30A0-\u30FF
Bopomofo
注音
\u3100-\u312F
HangulCompatibilityJamo
\u3130-\u318F
Kanbun
\u3190-\u319F
BopomofoExtended
扩展注音
\u31A0-\u31BF
EnclosedCJKLettersandMonths
带括号的CJK字母及月份
\u3200-\u32FF
CJKCompatibility
CJK兼容字符
\u3300-\u33FF
CJKUnifiedIdeographsExtensionA
CJK统一汉字扩展-A
\u3400-\u4dBF
CJKUnifiedIdeographs
CJK统一汉字
\u4E00-\u9fAF
YiSyllables
\uA000-\uA48F
YiRadicals
\uA490-\uA4CF
HangulSyllables
\uAC00-\uD7A3
HighSurrogates
\uD800-\uDB7F
HighPrivateUseSurrogates
\uDB80-\uDBFF
LowSurrogates
\uDC00-\uDFFF
PrivateUse
专用区
\uE000-\uF8FF
CJKCompatibilityIdeographs
CJK兼容汉字
\uF900-\uFAFF
AlphabeticPresentationForms
\uFB00-\uFB4F
ArabicPresentationForms-A
\uFB50-\uFDFF
CombiningHalfMarks
\uFE20-\uFE2F
CJKCompatibilityForms
CJK兼容形式
\uFE30-\uFE4F
SmallFormVariants
小写变体
\uFE50-\uFE6F
ArabicPresentationForms-Bound
\uFE70-\ufeFF
Specials
\uFFF0-\uFFFF
HalfwidthandFullwidthForms
半形及全形字符
\uFF00-\uFFEF
分类
全称
说明
Cn
UNASSIGNED
Lu
UPPERCASE_LETTER
Ll
LOWERCASE_LETTER
Lt
TITLECASE_LETTER
Lm
MODIFIER_LETTER
Lo
OTHER_LETTER
Mn
NON_SPACING_MARK
Me
ENCLOSING_MARK
Mc
COMBINING_SPACING_MARK
Nd
DECIMAL_DIGIT_NUMBER
Nl
LETTER_NUMBER
No
OTHER_NUMBER
Zs
SPACE_SEPARATOR
Zl
LINE_SEPARATOR
Zp
PARAGRAPH_SEPARATOR
Cc
CNTRL
Cf
FORMAT
Co
PRIVATE_USE
Cs
SURROGATE
Pd
DASH_PUNCTUATION
Ps
START_PUNCTUATION
Pe
END_PUNCTUATION
Pc
CONNECTOR_PUNCTUATION
Po
OTHER_PUNCTUATION
Sm
MATH_SYMBOL
Sc
CURRENCY_SYMBOL
Sk
MODIFIER_SYMBOL
So
OTHER_SYMBOL
L
LETTER
M
MARK
N
NUMBER
Z
SEPARATOR
C
CONTROL
P
PUNCTUATION
S
SYMBOL
LD
LETTER_OR_DIGIT
L1
Latin-1
all
ALL
ASCII
ASCII
Alnum
字母数字(0-9,a-z,A-Z)
Alpha
字母(a-z,A-Z)
Blank
空格和制表符(' '|\t)
Cntrl
控制字符,不可打印
Digit
数字(0-9)
Graph
可打印且可视字母(例如空格' '是可打印的但不是可视字母,而 `a' 两者都是。)
Lower
小写字母
Print
可打印字母(非控制字符)
Punct
标符号(字母、数字、控制、空白符以外的字母),如:!@#$%}{<>,./?[]等等。
Space
空白符(' ',\t,0x09,0x0A,0x0B,0x0C,0x0D,0x20)
Upper
大写字母
XDigit
十六进制数字(0-9,a-f, A-F)
--------------------------------------------------------------------------------
替换表达式
特殊字符
特殊字符介绍
描述
\n
换行
\b
向前删除一个字符。当这个字符位于替换串之首时,将删除匹配串之前的一个字符。若匹配串位于行首,将使匹配串所在行与前一行相合并。
\d
向后删除一个字符。当这个字符位于替换串之末时,将删除匹配串之后的一个字符。若匹配串位于行末,将使匹配串所在行与下一行相合并。
\e
插入一个ESC字符
\t
插入一个TAB字符
\n
n代表查找正则表达式中的子表达式(组)。\1代表第一个子表达式,\2代表第二个子表达式,依次类推。\0代表整个匹配到的字符串。
\v
大写下一个字母
\U
全部大写以后的字母,直到碰到其它指示符为止。
\l
小写下一个字母
\L
全部小写以后的字母,直到碰到其它指示符为止。
\E
取消所有的字母大小写指示符。
自定义替换表
在查找/替换中使用自定义替换表
有的时候,上述简单的自定义替换功能是不够的。例如,用户可能希望只把出现在括号内的源串替换为目标串。这种文本处理可以通过在查找/替换中使用自定义替换表来解决。
在查找/替换功能中使用自定义替换表的替换函数是\Tn,其中n是0-9的数字, 注意n为0表示第10张替换表。如果略去n,其效果相当于\T1,即使用第一张替换表。例如要把所有放在方括号中的汉字替换为拼音,可以查找“\[(\E)\]”,替换为“\T{\1}”。即把第一个子表达式的匹配内容按自定义替换表转换。注意,如果\T函数的参数不在替换表的源串中,\T函数的结果与源串相同,即不做任何变换。
有些情况下,用户可能希望只使用替换表的一部分内容。还是以拼音为例,前面给出的替换表中包含了拼音的音调,如果在替换时不希望加上这些音调数字,可以使用“过滤”功能。所谓过滤,其实是用一个正则表达式去分析替换表的目标串,并把其中的某个子表达式取出来。
使用“过滤”时,在“设置自定义替换表”对话框中,点“过滤”按钮,在弹出的对话框中填入一个正则表达式。再以拼音为例,表达式可以写为“(\p{Alpha}+)(\d)”,其中第一对括号中的是不含音调的拼音,第二对括号是音调。在调用\T函数时,JTextPro会在目标串中查找这个正则表达式。但是如何把其中的子表达式取出来呢?\T函数还有一个可选的下标,取第n个子表达式的值就写作\T{...}[n]。所以,把放在方括号中的汉字替换为不带调的拼音,可以查找“\[(\E)\]”,替换为“\T{\1}[1]”
Tracker:http://www.blogjava.net/zhugf000/archive/2005/12/12/23414.html
正则表达式介绍
匹配模式
字符子集
行结束符
分组和引用
Unicode支持
正则表达式语法参考
字符
逻辑操作符
向后引用
边界元字符
重复指示符
字符子集
预定义子集(元字符)
扩展子集(元字符)
扩展中文子集(元字符)
POSIX字符子集(只适用于ASCII)
Unicode块和分类
替换表达式
替换表达式
特殊字符
自定义替换表
--------------------------------------------------------------------------------
匹配模式
匹配模式指得是正则表达式引擎将以何种模式匹配字符串。
模式名称
启用,禁用
缺省启用
说明
UNIX_LINES
(?d)启用,(?-d)禁用
是
启用Unix行模式。
在此模式下,只有 '\n'被认为是行结束符。它会影响., ^, 和 $ 的行为。
CASE_INSENSITIVE
(?i)启用,(?-i)禁用
否
启用忽略大小写模式。
缺省时,忽略大小写模式只会影响 ASCII字符的匹配。 而Unicode范围的忽略大小写匹配需要通过 UNICODE_CASE 标志与本标志联合使用。
启用此模式会影响匹配性能。
COMMENTS
(?x)启用,(?-x)禁用
否
允许空格和注释出现在正则表达式中。
在此模式下,空格被忽略,以#开始的单行注释被忽略。
MULTILINE
(?m)启用,(?-m)禁用
是
启用多行模式。
In multiline mode the expressions ^ and $ match just after or just before, respectively, a line terminator or the end of the input sequence. By default these expressions only match at the beginning and the end of the entire input sequence.
DOTALL
(?s)启用,(?-s)禁用
否
让.可以匹配行结束符。
在此模式下,元字符.可以匹配行结束符。缺省不允许如此匹配。
UNICODE_CASE
(?u)启用,(?-u)禁用
否
Enables Unicode-aware case folding.
When this flag is specified then case-insensitive matching, when enabled by the CASE_INSENSITIVE flag, is done in a manner consistent with the Unicode Standard. By default, case-insensitive matching assumes that only characters in the US-ASCII charset are being matched. 启用此模式会影响性能。
CANON_EQ
(?c)启用,(?-c)禁用
否
Enables canonical equivalence.
When this flag is specified then two characters will be considered to match if, and only if, their full canonical decompositions match. The expression "a\u030A", for example, will match the string "?" when this flag is specified. By default, matching does not take canonical equivalence into account.
启用此模式会影响性能。
字符子集
字符子集可以含有别的字符子集,并且可以通过联合操作符(缺省)和交集操作符(&&)实现组合。联合操作符表示某个子集匹配它的子子集所匹配的任意字符。交集操作符表明某个字符子集只匹配它的子子集都匹配的字符。
字符子集所能够有的操作符的优先级如下,从高到低:
转义符\x
成组符 [...]
区间符 a-z
联合符 [a-e][i-u]
交集符 [a-z&&[aeiou]]
注意:在字符子集[]内部的语法根本不同于正则表达式其它部分中的语法。例如,在字符子集内部,正则表达式 . 失去了它原有的含义,而是成了一个匹配.的元字符。
行结束符
行结束符是一个或两个字符序列,用以表明输入字符序列中一行的结束。下面的字符被认为是行结束符:
一个换行符('\n')。
一个回车符加上一个换行符("\r\n")。
一个单独的回车符('\r')。
代表下一行的字符('\u0085')。
行分隔符('\u2028'),Unicode中被定义。
一个分段符('\u2029),Unicode中被定义。
如果 UNIX_LINES 模式被启用,则只有换行符被认为是行结束符。
如果 MULTILINE 模式被启用,。
分组和引用
字符分组以它们的左括号的出现顺序来排序。例如在表达式((A)(B(C))),有四个分组:
((A)(B(C)))
(A)
(B(C))
(C)
第0组永远表示表达式本身。
分组采用这样的命名方式,是因为,在一次匹配过程中,正则表达式会被匹配多次。以前的匹配子序列有可能在将来被使用;或者在匹配结束时,程序有可能需要重新获得所有匹配的子字符序列。
对于正则表达式中的某个分组而言,永远只保留最后匹配的字符序列。如果对某个分组匹配尝试失败,则会保留上次匹配成功的字符序列。例如,对于正则表达式(a(b)?)+而言,字符序列"aba",将会让分组2匹配的字符序列为"b"。
以(?开始的分组,将不会计入分组数目,也不会被后续匹配所引用。
Unicode支持
本正则表达式匹配引擎的实现遵循了《Unicode技术报告:Unicode正则表达式指南》,实现了该指南的第二层所需的功能,但是在细微处有一些简单语法修改。
Unicode块(Block)和分类(Category)通过\p和\P通配苻表示。\p{prop}匹配含有prop的输入序列,而\P{prop}匹配不含有prop的输入序列。Unicode块通过前缀In表示,如\p{InMongolian}。Unicode分类通过可选的前缀Is表示,因此\p{L}和\p{IsL}都代表Unicode分类 letters。Unicode块和分类都可以在正则表达式子集外部和内部使用。
目前支持的Unicode块和分类是《Unicode标准,第三版》中所指定的块和分类。 Unicode块名称在《Unicode 字符数据库》的第14章被定义,文件名称叫Blocks-3.txt,但是名称中的空格被去掉了。例如"Basic Latin"成了"BasicLatin"。无论是标准化的还是非标准化的分类,都在该标准的第88页的第4-5表中被全部定义。
与Perl 5正则表达式语法对比
[TBD]
--------------------------------------------------------------------------------
正则表达式参考
--------------------------------------------------------------------------------
字符
正则表达式字符串
匹配的字符串
X
字符X,包括 CJK ExtB 区汉字
\\
反斜杠\
\0n 八进制0n代表的字符(0<=n<=7)
\0nn
八进制0nn代表的字符(0<=n<=7)
\0mnn
八进制0mnn代表的字符(0<=m<=3,0<=n<=7)
\xhh
十六进制 0xhh所代表的字符
\uhhhh
十六进制 0xhhhh所代表的字符。注意,目前尚不支持CJK ExtB区汉字。
\t
制表符('\u0009')
\n
换行('\u000A')
\r
回车('\u000D')
\a
响铃符('\u0007')
\e
取消符Escape('\001B')
\cx
x所代表的控制字符
逻辑操作符
正则表达式字符串
匹配的字符串
XY
X后面跟随Y
X|Y
X或者Y
(X)
X作为分组表达式
向后引用
正则表达式字符串
匹配的字符串
\n
第n个匹配的分组
边界元字符
边界字符
匹配的字符串
^
行首
$
行末
\b 字符边界
\B
非字符边界
\A
输入流的开始
\G
上次匹配的结束处
\Z
输入流的结束,或者是最后一个行结束符,参见行结束符。
\z
输入流的结束
重复指示符
正则表达式字符串
匹配的字符串
X?
X重复一次,或者不重复
X*
X重复0次或多次
X+
X重复1次或多次
X{n}
X重复n次,不多也不少。
X{n,}
X至少重复n次
X{n,m}
X至少重复n次,至多重复m次。
注:X{n,m}、?、*、+方式可以联合使用。
字符子集
正则表达式字符串子集
匹配的字符串
组合方式
[abc]
字符a,b或c,包括 CJK ExtB 区汉字
简单子集
[^abc]
任意非a,b或c的字符。
排除
[a-zA-Z] 从a到z,或者A到Z,包含a,z,A,Z。
区间
[a-d[m-p]]
从a到d,或者m到p,等于[a-dm-p]。
联合
[a-z&&[def]]
d,e或者f。
交集
[a-z&&[^bc]]
从a到z,除了b和c,等于[ad-z]
扣除
[a-z&&[^m-p]]
从a到z,并且不包括从m到p,等于[a-lq-z]
扣除
预定义子集(元字符)
边界字符
匹配的字符串
.
任意字符,可能匹配行结束符。
\d
数字[0-9]
\D 非数字[^0-9]
\s
空白符[ \t\n\x0B\f\r]
\S
非空白符[^\s]
\w
单词符,包含有字母和数字[a-zA-Z_0-9]
\W
非单词符,不包含有字母和数字。
扩展子集(元字符)
正则表达式字符串
匹配的字符串
扩展中文子集(元字符)
名称
块名称(\p{InXXX})
简化通配符
标准Unicode块,或者汉字列表
任意双字节字符(汉字或全角符号)
\p{InQuqnJiao}
\E
任意由GBK表示的汉字,不包括GB18030扩展部分,
以及CJK ExtB区的汉字。
任意单字节字符
\p{InFQuanJiao}
\~E
任意单字节字符。
任意全角ASCII字符
\p{InQJAscii}
\H
标准HalfwidthandFullwidthForms块
任意收录在BIG5码集中的双字节字符
\p{InBig5}
\I
Big5可编码双字节字符
匹配未收录在BIG5码集中的双字节字符 \p{InFBig5}
\~I
非Big5可编码双字节字符
匹配任意汉字(不包括符号)
\p{InHanziOrCJKExtB}
\X
任意汉字,包括GB18030扩展部分。
匹配任意汉字(不包括符号)
\p{InHanzi}
\M
任意汉字,不包括GB18030扩展部分。
匹配非汉字的双字节字符
\p{InFHanzi}
\~M
任意非汉字的双字节字符,
包括GB18030扩展部分。
地支字符
\p{InDiZhi}
\U
子丑寅卯辰巳午未申酉戌亥
匹配收录在GB码集中的双字节字符
\p{InGB}
\g
收录在GB码集中的双字节字符,
不包括GB18030扩展部分。
匹配非收录在GB码集中的双字节字符
\p{InFGB}
\~g
未收录在GB码集中的双字节字符,
不包括GB18030扩展部分。
匹配收录在GBK码集中的双字节字符
\p{InGBK}
\h
收录在GBK码集中的双字节字符,
不包括GB18030扩展部分。
匹配非收录在GBK码集中的双字节字符
\p{InFGBK}
\~h
未收录在GBK码集中的双字节字符,
不包括GB18030扩展部分。
大写希腊字母
\p{InDaXila}
\K
ΑΒΓΔΕΖΗΘΙΚΛΜΝ
ΞΟΠΡΣΤΥΦΧΨΩ
日文片假名
\p{InPianJia}
\j
标准Katakana块
日文平假名
\p{InPingJia}
\J
标准Hiragana块
小写希腊字母
\p{InXiaoXila}
\k
αβγδεζηθικλμν
ξοπρστυφχψω
数学符号
\p{InMathe}
\m
±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙
∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴
中文数字
\p{InCnDigit}
\i
〇一二三四五六七八九十百千万亿兆吉京
大写中文数字
\p{InDaCnDigit}
\N
零壹贰叁肆伍陆柒捌玖拾佰仟萬亿兆吉京
全角标点符号
\p{InQJBiaoDian}
\o
、。·ˉˇ¨〃々—~‖…‘’“”〔〕
〈〉《》「」『』〖〗【】!"'(),
-.:;<=>?[]{|}`﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚
﹛﹜﹝﹞︵︶︹︺︿﹀︽︾﹁﹂﹃﹄
︻︼︷︸︱︳︴
小写俄文字母
\p{InXiaoEWen}
\l
абвгдеёжзийклмн
опрстуфхцчшщъыьэюя
大写俄文字母
\p{InDaEWen}
\R
АБВГДЕЁЖЗИЙКЛМНО
ПРСТУФХЦЧШЩЪЫЬЭЮЯ
中文序号
\p{InCnSN}
\q
ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ
ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ
再加上Unicode标准EnclosedAlphanumerics块
天干字符
\p{InTianGan}
\T
甲乙丙丁戊己庚辛壬癸
竖排标点符号
\p{InSPBiaoDian}
\V
︵︶︹︺︿﹀︽︾﹁﹂﹃﹄︻︼︷︸︱︳︴
拼音字符
\p{InPinyin}
\y
āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑńňɡ
GBK -> 0xA8A1- 0xA8C0
只是Unicode标准LatinExtended-A块的一部分。
注音字符
\p{InZhuyin}
\Y
标准Bopomofo块
制表字符
\p{InZhiBiao}
\C
标准BoxDrawing块。
经检查发现 textpro 的算法含有部分非标
准Unicode制表符:“∟∣≒≦≧⊿═”。
POSIX字符子集(只适用于ASCII)
正则表达式字符串
匹配的字符串
\p{Lower}
小写字母[a-z]
\p{Upper}
大写字母[A-Z]
\p{ASCII}
所有的ASCII字符[\x00-\x7F]
\p{Alpha}
大小写字母[\p{Lower}\p{Upper}]
\p{Digit}
数字[0-9]
\p{Alnum}
字母数字符,包含大小写字母和数字[\p{Alpha}\p{Digit}]
\p{Punct}
标点符号,!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~之一。
\p{Graph}
可显示字符[\p{Alnum}\p{Punct}]
\p{Print}
可打印字符[\p{Graph}]
\p{Blank}
空格或者制表符[ \t]
\p{Cntrl}
控制字符[\x00-\x1F\x7F
\p{XDigit}
十六进制数字[0-9a-fA-F]
\p{Space}
空白符[ \t\n\x0B\f\r]
Unicode块和分类
块
中文名称(摘自Word XP)
代码区域
BasicLatin
基本拉丁语
\u0000-\u007F
Latin-1Supplement
拉丁语-1
\u0080-\u00FF
LatinExtended-A
拉丁语扩充-A
\u0100-\u017F
LatinExtended-Bound
拉丁语扩充-B
\u0180-\u024F
IPAExtensions
国际音标扩充
\u0250-\u02AF
SpacingModifierLetters
进格的修饰字符
\u02B0-\u02FF
CombiningDiacriticalMarks
组合用发音符
\u0300-\u036F
Greek
基本希腊语
\u0370-\u03FF
Cyrillic
西里尔语
\u0400-\u04FF
Armenian
\u0530-\u058F
Hebrew
\u0590-\u05FF
Arabic
\u0600-\u06FF
Syriac
\u0700-\u074F
Thaana
\u0780-\u07BF
Devanagari
\u0900-\u097F
Bengali
\u0980-\u09FF
Gurmukhi
\u0A00-\u0A7F
Gujarati
\u0A80-\u0AFF
Oriya
\u0B00-\u0B7F
Tamil
\u0B80-\u0BFF
Telugu
\u0C00-\u0C7F
Kannada
\u0C80-\u0CFF
Malayalam
\u0D00-\u0D7F
Sinhala
\u0D800-\uDFF
Thai
\u0E00-\u0E7F
Lao
\u0E80-\u0EFF
Tibetan
藏语
\u0F00-\u0FFF
Myanmar
\u1000-\u109F
Georgian
\u10A0-\u10FF
HangulJamo
\u1100-\u11FF
Ethiopic
\u1200-\u137F
Cherokee
\u13A0-\u13FF
UnifiedCanadianAboriginalSyllabics
\u1400-\u167F
Ogham
\u1680-\u169F
Runic
\u16A0-\u16FF
Khmer
\u1780-\u17FF
Mongolian
蒙古语
\u1800-\u18AF
LatinExtendedAdditional
\u1E00-\u1EFF
GreekExtended
\u1F00-\u1FFF
GeneralPunctuation
广义标点
\u2000-\u206F
SuperscriptsandSubscripts
\u2070-\u209F
CurrencySymbols
货币符号
\u20A0-\u20CF
CombiningMarksforSymbols
\u20D0-\u20FF
LetterlikeSymbols
类似字母的符号
\u2100-\u214F
NumberForms
数字形式
\u2150-\u218F
Arrows
箭头
\u2190-\u21FF
MathematicalOperators
数学运算符
\u2200-\u22FF
MiscellaneousTechnical
零杂技术用符号
\u2300-\u23FF
ControlPictures
\u2400-\u243F
OpticalCharacterRecognition
\u2440-\u245F
EnclosedAlphanumerics
带括号的字母数字
\u2460-\u24FF
BoxDrawing
制表符
\u2500-\u257F
BlockElements
方块图形
\u2580-\u259F
GeometricShapes
几何图形
\u25A0-\u25FF
MiscellaneousSymbols
零杂丁贝符(示意符等)
\u2600-\u26FF
Dingbats
\u2700-\u27BF
BraillePatterns
\u2800-\u28FF
CJKRadicalsSupplement
\u2E80-\u2EFF
KangxiRadicals
\u2F00-\u2FDF
IdeographicDescriptionCharacters
\u2FF0-\u2FFF
CJKSymbolsandPunctuation
CJK符号和标点
\u3000-\u303F
Hiragana
平假名
\u3040-\u309F
Katakana
片假名
\u30A0-\u30FF
Bopomofo
注音
\u3100-\u312F
HangulCompatibilityJamo
\u3130-\u318F
Kanbun
\u3190-\u319F
BopomofoExtended
扩展注音
\u31A0-\u31BF
EnclosedCJKLettersandMonths
带括号的CJK字母及月份
\u3200-\u32FF
CJKCompatibility
CJK兼容字符
\u3300-\u33FF
CJKUnifiedIdeographsExtensionA
CJK统一汉字扩展-A
\u3400-\u4dBF
CJKUnifiedIdeographs
CJK统一汉字
\u4E00-\u9fAF
YiSyllables
\uA000-\uA48F
YiRadicals
\uA490-\uA4CF
HangulSyllables
\uAC00-\uD7A3
HighSurrogates
\uD800-\uDB7F
HighPrivateUseSurrogates
\uDB80-\uDBFF
LowSurrogates
\uDC00-\uDFFF
PrivateUse
专用区
\uE000-\uF8FF
CJKCompatibilityIdeographs
CJK兼容汉字
\uF900-\uFAFF
AlphabeticPresentationForms
\uFB00-\uFB4F
ArabicPresentationForms-A
\uFB50-\uFDFF
CombiningHalfMarks
\uFE20-\uFE2F
CJKCompatibilityForms
CJK兼容形式
\uFE30-\uFE4F
SmallFormVariants
小写变体
\uFE50-\uFE6F
ArabicPresentationForms-Bound
\uFE70-\ufeFF
Specials
\uFFF0-\uFFFF
HalfwidthandFullwidthForms
半形及全形字符
\uFF00-\uFFEF
分类
全称
说明
Cn
UNASSIGNED
Lu
UPPERCASE_LETTER
Ll
LOWERCASE_LETTER
Lt
TITLECASE_LETTER
Lm
MODIFIER_LETTER
Lo
OTHER_LETTER
Mn
NON_SPACING_MARK
Me
ENCLOSING_MARK
Mc
COMBINING_SPACING_MARK
Nd
DECIMAL_DIGIT_NUMBER
Nl
LETTER_NUMBER
No
OTHER_NUMBER
Zs
SPACE_SEPARATOR
Zl
LINE_SEPARATOR
Zp
PARAGRAPH_SEPARATOR
Cc
CNTRL
Cf
FORMAT
Co
PRIVATE_USE
Cs
SURROGATE
Pd
DASH_PUNCTUATION
Ps
START_PUNCTUATION
Pe
END_PUNCTUATION
Pc
CONNECTOR_PUNCTUATION
Po
OTHER_PUNCTUATION
Sm
MATH_SYMBOL
Sc
CURRENCY_SYMBOL
Sk
MODIFIER_SYMBOL
So
OTHER_SYMBOL
L
LETTER
M
MARK
N
NUMBER
Z
SEPARATOR
C
CONTROL
P
PUNCTUATION
S
SYMBOL
LD
LETTER_OR_DIGIT
L1
Latin-1
all
ALL
ASCII
ASCII
Alnum
字母数字(0-9,a-z,A-Z)
Alpha
字母(a-z,A-Z)
Blank
空格和制表符(' '|\t)
Cntrl
控制字符,不可打印
Digit
数字(0-9)
Graph
可打印且可视字母(例如空格' '是可打印的但不是可视字母,而 `a' 两者都是。)
Lower
小写字母
可打印字母(非控制字符)
Punct
标符号(字母、数字、控制、空白符以外的字母),如:!@#$%}{<>,./?[]等等。
Space
空白符(' ',\t,0x09,0x0A,0x0B,0x0C,0x0D,0x20)
Upper
大写字母
XDigit
十六进制数字(0-9,a-f, A-F)
--------------------------------------------------------------------------------
替换表达式
特殊字符
特殊字符介绍
描述
\n
换行
\b
向前删除一个字符。当这个字符位于替换串之首时,将删除匹配串之前的一个字符。若匹配串位于行首,将使匹配串所在行与前一行相合并。
\d
向后删除一个字符。当这个字符位于替换串之末时,将删除匹配串之后的一个字符。若匹配串位于行末,将使匹配串所在行与下一行相合并。
\e
插入一个ESC字符
\t
插入一个TAB字符
\n
n代表查找正则表达式中的子表达式(组)。\1代表第一个子表达式,\2代表第二个子表达式,依次类推。\0代表整个匹配到的字符串。
\v
大写下一个字母
\U
全部大写以后的字母,直到碰到其它指示符为止。
\l
小写下一个字母
\L
全部小写以后的字母,直到碰到其它指示符为止。
\E
取消所有的字母大小写指示符。
自定义替换表
在查找/替换中使用自定义替换表
有的时候,上述简单的自定义替换功能是不够的。例如,用户可能希望只把出现在括号内的源串替换为目标串。这种文本处理可以通过在查找/替换中使用自定义替换表来解决。
在查找/替换功能中使用自定义替换表的替换函数是\Tn,其中n是0-9的数字, 注意n为0表示第10张替换表。如果略去n,其效果相当于\T1,即使用第一张替换表。例如要把所有放在方括号中的汉字替换为拼音,可以查找“\[(\E)\]”,替换为“\T{\1}”。即把第一个子表达式的匹配内容按自定义替换表转换。注意,如果\T函数的参数不在替换表的源串中,\T函数的结果与源串相同,即不做任何变换。
有些情况下,用户可能希望只使用替换表的一部分内容。还是以拼音为例,前面给出的替换表中包含了拼音的音调,如果在替换时不希望加上这些音调数字,可以使用“过滤”功能。所谓过滤,其实是用一个正则表达式去分析替换表的目标串,并把其中的某个子表达式取出来。
使用“过滤”时,在“设置自定义替换表”对话框中,点“过滤”按钮,在弹出的对话框中填入一个正则表达式。再以拼音为例,表达式可以写为“(\p{Alpha}+)(\d)”,其中第一对括号中的是不含音调的拼音,第二对括号是音调。在调用\T函数时,JTextPro会在目标串中查找这个正则表达式。但是如何把其中的子表达式取出来呢?\T函数还有一个可选的下标,取第n个子表达式的值就写作\T{...}[n]。所以,把放在方括号中的汉字替换为不带调的拼音,可以查找“\[(\E)\]”,替换为“\T{\1}[1]”
Tracker:http://www.blogjava.net/zhugf000/archive/2005/12/12/23414.html
发表评论
-
servletcontext 的获取
2013-05-12 20:10 484容器在初始化servlet时,会为其注入servletconf ... -
取得下一个sequence。 getNextInterval
2013-03-15 11:47 9501. 初始sequence值放置于数据库。 2. 启动时产 ... -
java 脚本,编译与注解处理
2013-02-05 10:04 8601.java中支持脚本调用 通过脚本引擎来执行。 Obj ... -
java 安全管理器
2013-02-04 11:24 8411.在java语言实现中,扩展和系统加载器都是java实现的, ... -
RMI 底层实现
2013-01-28 16:43 9201. server端代码: Registry regist ... -
Java获取当前路径
2013-01-22 18:12 901无论是抽象路径名还是路径名字符串,都可以是绝对 路径名或相对 ... -
java1.5 新特性
2013-01-10 16:50 772"JDK1.5"的一个重要主题就是通过新增 ... -
import static静态导入
2013-01-10 12:12 855import static静态导入是JDK1.5中的新特性。一 ... -
类加载器加载的类的访问权限问题
2013-01-04 15:34 10611.父加载器加载的类不能访问子加载器加载的类。 (向下可见性) ... -
java 内部类总结
2012-12-28 12:31 752主要从分类和使用情境来看 1. 普通内部类。 位置: 在 ... -
java构造函数和静态变量的执行顺序
2012-12-18 11:18 1045java初始化顺序 1在new B一个实例时首先要进行类的装载 ... -
Java多线程之Condition接口的实现
2012-11-26 17:03 960在实际中一个lock可产生多个Condition对象。个人认为 ... -
java线程同步原理(lock,synchronized)
2012-11-26 14:26 1005一。 java线程同步原理 java会为每个object对象分 ... -
总结下java中abstract,interface,final,static,加深理解
2012-11-16 17:16 894一,抽象类:abstract 1,只要有一个或一个 ... -
为什么interface的变量必须是public final static的
2012-11-16 17:15 1023public 感觉是因为Java对接口的要求是所有类都可以实现 ... -
stack在排序的应用
2012-10-22 17:04 728对于list, 可用Collections的静态方法 Coll ... -
随机访问文件RandomAccessFile 与 内存映射文件MappedByteBuffer
2012-09-25 14:59 1583RandomAccessFile RandomAccessF ... -
Java 服务器端支持断点续传的源代码
2012-09-25 14:44 4046Java 服务器端支持断点续传的源代码【支持快车、迅雷】(仅支 ... -
new File(String parent,String child)
2012-08-22 23:00 1180//user_dir:E:\workspace\javates ... -
System.getProperty
2012-08-22 22:07 920System.getProperty(String name) ...
相关推荐
Java正则表达式介绍和练习Java正则表达式介绍和练习Java正则表达式介绍和练习
以下是对MSDN中关于正则表达式介绍的深入解析。 #### 正则表达式的概念与用途 正则表达式本质上是一种模式匹配工具,它可以识别和处理文本中符合特定规则的模式。与传统的字符串搜索不同,正则表达式提供了一种...
Java使用正则表达式提取XML节点内容的方法示例主要介绍了Java使用正则表达式提取XML节点内容的方法,结合具体实例形式分析了java针对xml格式字符串的正则匹配相关操作技巧。 一、正则表达式简介 正则表达式是指一...
本书主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了正则表达式在Perl、Java、.NET、PHP中的用法。 本书自第1 版开始着力于教会读者“以正则表达式来思考”,来让读者...
接着,教程介绍了如何使用正则表达式中的数量词来匹配字符出现的次数。比如,`\d`代表一个数字,`0\d\d-\d\d\d\d\d\d\d\d`可以匹配一个以0开头,后面跟着2至3个数字,然后是一个连字符“-”,最后是7至8个数字的电话...
书中介绍的正则表达式涵盖的主题广泛,内容结构清晰,每个章节都配备了丰富的示例和练习,方便读者通过实践来加深理解和记忆。本书不仅适合初学者入门学习,也适合有经验的程序员用以巩固和提高自己的正则表达式技能...
本书《精通正则表达式(第三版)简体中文版》主要介绍了正则表达式的概念、语法以及如何在不同的环境中高效地使用正则表达式。 #### 二、正则表达式的语法基础 1. **元字符**:正则表达式中的特殊字符,用于指定...
正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。它通过一系列预定义的字符、符号和运算符来描述一个字符串集,使得程序员可以高效地...
本文将详细介绍"正则表达式调试工具V3.0 绿色免费版"的特点及其在软件开发中的应用。 该调试工具界面简洁,旨在为开发者提供一个友好的环境来调试他们的正则表达式。它的主要功能包括: 1. **模式测试**:用户可以...
### 正则表达式详解 #### 一、正则表达式的定义与背景 正则表达式(Regular Expression),简称regex或regexp,是一种用于描述文本模式的强大工具。它可以帮助我们在文本中进行精确匹配、查找以及替换操作。正则...
本文将详细介绍如何在Java中使用正则表达式以及测试正则表达式的软件。 首先,让我们了解一下Java中的正则表达式基础。在Java中,`java.util.regex`包提供了对正则表达式的支持。主要涉及以下核心类: 1. **...
本文将对正则表达式的基础知识进行详细的介绍,从什么是正则表达式开始,逐步深入浅出地讲解正则表达式的基本概念、正则表达式引擎、文字符号、特殊字符、不可显示字符、正则表达式引擎的内部工作机制等。...
在这个“正则表达式介绍”资源包中,你将找到关于这一主题的详细资料,包括`regular.chm`帮助文档,可能包含了正则表达式的基本语法、常用元字符、匹配规则以及实例解析;`readme.txt`可能是对整个资源包的简要说明...
在IT行业中,XML(eXtensible Markup Language)和正则表达式是两个非常重要的概念,广泛应用于数据处理和文本匹配。本篇文章将深入探讨这两个主题,并结合它们在实际应用中的作用。 首先,XML是一种标记语言,设计...
正物色一本学习正则表达式的入门图书?恭喜,《学习正则表达式》非常适合你!本书提供大量经典简洁的示例,从零开始教你逐步掌握正则表达式。通过匹配特定单词、字符和模式,读者很快就可以自己动手使用正则表达式...
正则表达式是一种强大的文本匹配工具,它能够用来检查、分割、替换字符串,并在很多编程语言和工具中得以应用。正则表达式通常使用简短的字符串来定义复杂的搜索模式,这些模式可以包含普通字符、特殊字符和元字符。...
- **文档**:Python官方文档中的`re`模块介绍,以及其他专门的正则表达式教程。 - **实践项目**:通过实际项目练习,巩固理论知识,提升实战能力。 - **在线工具**:如Regex101、Regexr等网站,提供在线测试和...