计算机语言语法和翻译笔记1:正则表达式 符号规则使用浅析和总结

前端之家收集整理的这篇文章主要介绍了计算机语言语法和翻译笔记1:正则表达式 符号规则使用浅析和总结前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以下是我自己对正则表达式(regular expression)一些符号还有规则的浅显总结

有一个很好的网站能检验是否曲配和找最长的符合的表达式为:http://regex101.com/


基本定义:

@H_404_22@

解释

@H_404_22@

解释

@H_404_22@

备注

@H_404_22@

ab

@H_404_22@

Concatenation

@H_404_22@

@H_404_22@

@H_404_22@

a | b

@H_404_22@

OR

@H_404_22@

@H_404_22@

@H_404_22@

a*

@H_404_22@

EMPTY OR MORE

@H_404_22@

空或多个

@H_404_22@

贪婪性(尽可能多的取配符合的pattern

@H_404_22@

a+

@H_404_22@

1 OR MORE

@H_404_22@

1个或多个

@H_404_22@

贪婪性

@H_404_22@

a?

@H_404_22@

NONE OR 1

@H_404_22@

空或1

@H_404_22@

贪婪性

@H_404_22@

+ OR *? OR

@H_404_22@

懒惰性(与贪婪性正好相反 失败了 就回溯表达式)

@H_404_22@

Matching a HTML tag:(ex<HTML>

before

<.+>

@H_404_22@

After:

<.+?> OR <.*?>

@H_404_22@

惰性代替方案

@H_404_22@

一个贪婪重复与一个取反字符集

@H_404_22@

不用回溯

@H_404_22@

Even better:

<[^>]+>

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

缩写:

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

.

@H_404_22@

ALL THE CHARS

@H_404_22@

所有字符

@H_404_22@

@H_404_22@

\d OR \\d

@H_404_22@

ANY DIGIT

@H_404_22@

所有数字

@H_404_22@

[0-9]

@H_404_22@

\D

@H_404_22@

NEG of(\d)

@H_404_22@

除数字之外

@H_404_22@

[^0-9]

@H_404_22@

\w

@H_404_22@

WORD

@H_404_22@

单词

@H_404_22@

[a-zA-Z_0-9]

@H_404_22@

\W

@H_404_22@

NEG (\w)

@H_404_22@

处单词之外

@H_404_22@

[^\w]

@H_404_22@

\s

@H_404_22@

ESCAPE SEQ.

@H_404_22@

逃离顺序符

@H_404_22@

[ \t\n\x0B\f\r] 注意有空格

@H_404_22@

\S

@H_404_22@

NEG (\s)

@H_404_22@

除了逃离顺序符之外的

@H_404_22@

[^\s]

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

边界:

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

^

@H_404_22@

START

@H_404_22@

锚:开始

@H_404_22@

@H_404_22@

$

@H_404_22@

END

@H_404_22@

锚:尾

@H_404_22@

@H_404_22@

\b

@H_404_22@

WORD BOUNDARY

@H_404_22@

单词边界**(需注意其判明机制)

@H_404_22@

@H_404_22@

\B

@H_404_22@

NEG (\b)

@H_404_22@

除单词边界之外的

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

括号,否定和其他

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

\

@H_404_22@

LITERALS

@H_404_22@

转义**

@H_404_22@

[,\, ^,-,", ., ",]

@H_404_22@

(ab)

@H_404_22@

"()"TREAT AS A GROUP

@H_404_22@

小括号表示集体

@H_404_22@

@H_404_22@

[ab]

@H_404_22@

OR *ONLY MATCHING CHAR

@H_404_22@

中括号表示或者

@H_404_22@

@H_404_22@

[^ab]

@H_404_22@

NEG OF (a|b)

@H_404_22@

中括号里面加插入号表示“非”

@H_404_22@

@H_404_22@

[a-z]

@H_404_22@

RANGE

@H_404_22@

破折号表示区间

@H_404_22@

@H_404_22@

&&

@H_404_22@

INTERSECTION * FOR BOLLEAN RELATION

@H_404_22@

&&”表示共有的

@H_404_22@

@H_404_22@

[a,b]

@H_404_22@

TO SEPARATE? * NOT SURE

@H_404_22@

逗号用于区分

@H_404_22@

@H_404_22@

((?!xxxx).)* if then

@H_404_22@

NEGATIVE LOOK AROUND?* ADVANCED USAGE

@H_404_22@

?(A)B|C)IF A THEN B ELSE C.

(?(A)B) IF A THEN B

@H_404_22@

详情:http://ocpsoft.org/opensource/guide-to-regular-expressions-in-java-part-2/

http://www.rexegg.com/regex-conditionals.html

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

重复特定的一个字符:

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

X{N}

@H_404_22@

MATCH X EXACTLY N TIMES

@H_404_22@

取配单个字符X 正好M

@H_404_22@

@H_404_22@

X{N,}

@H_404_22@

AT LEAST N TIMES

@H_404_22@

至少N

@H_404_22@

@H_404_22@

X{N,M}

@H_404_22@

AT LEAST N TIMES BUT NO MORE THEN M TIMES

@H_404_22@

至少N 最多不超过M

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

需要注意的地方:

@H_404_22@

@H_404_22@

@H_404_22@

@H_404_22@

java 转义时要多加一个“\

@H_404_22@

\\

@H_404_22@

@H_404_22@

@H_404_22@

[(ab)(ba)]

@H_404_22@

"[]"WOULD NOT WORK FOR STRING

@H_404_22@

中括号不适合字符串的应用

@H_404_22@

@H_404_22@

[(ab)(bc)] ?= [a,b,c]

@H_404_22@

SAME THING

@H_404_22@

同上

@H_404_22@

@H_404_22@

ab|ba OR (ab|ba)

@H_404_22@

THIS IS PORPER USE FOR STING

@H_404_22@

正确用字符串

@H_404_22@

@H_404_22@

[^a-z]

@H_404_22@

NOT a to z

@H_404_22@

@H_404_22@

@H_404_22@

[^abc]

@H_404_22@

Not a OR b OR c

@H_404_22@

@H_404_22@

@H_404_22@

"\\" -> "\\\\"

@H_404_22@

FOR JAVA

@H_404_22@

@H_404_22@

@H_404_22@

[a-z&&[def]]

@H_404_22@

INTERSECTION *BE CAREFULL

@H_404_22@

满足a-z同时满足def 其实就是d|e|f

@H_404_22@

@H_404_22@

[a-d[m-p]]

@H_404_22@

UNION

@H_404_22@

或,ad或者mp

@H_404_22@

@H_404_22@

[a-z&&[^bc]]

@H_404_22@

SUBTRACTION

@H_404_22@

除了bc之外从az

@H_404_22@

猜你在找的正则表达式相关文章