正则表达式_ME

基本的元字符
\d 匹配任意数字字符
. 匹配任意单个字符
\D \d的反义
| 逻辑或操作符       
\f 换页符
[] 匹配字符集合中的一个字符
\n 换行符
[^] 对字符集合求非
\r 回车符
- 定义一个区间(例如A-Z)
\s 匹配一个空白字符
\ 对下一个字符转义
\S \s的反义

数量元字符
\t 制表符(Tab字符)
* 匹配前一个字符(子表达式)的零次或多次重复
\v 垂直制表符
*? *的懒惰型版本
\w 匹配任意字母数字字符或下划线字符
+ 匹配前一个字符(子表达式)的一次或多次重复
\W \w的反义
+? +的懒惰型版本
\x 匹配一个十六进制数字
? 匹配前一个字符(子表达式)的零次或一次重复
\0 匹配一个八进制数字
{n} 匹配前一个字符(子表达式)的N次重复 回溯引用和前后查找
{m,n} 匹配前一个字符(子表达式)至少M次且至多N次的重复
() 定义一个子表达式
{n,} 匹配前一个字符(子表达式)N次或更多次重复
\1 匹配第1个子表达式;\2代表第二个子表达式,依次类推
{n,}? {n}的懒惰型版本 ?= 向前查找

位置元字符
?<= 向后查找
^ 匹配字符串的开头
?! 负向前查找(非)
\A 匹配字符串的开头
?!= 负向后查找
$ 匹配字符串的结束
?() 条件(if then)
/z 匹配字符串的结束
?()| 条件(if(then else)
/< 匹配单词的开头 大小写转换
/> 匹配单词的结束
/E 结束\L或\U转换
/b 匹配单词边界(开头和结束)
/l 把下一个字符转换为小写
/B \b的反义
/L 把后面的字符转换为小写,直到遇见\E为止

特殊字符元字符
/u 把下一个字符转换为大写
[\b] 退格字符
/U 把后面的字符转换为大写,直到遇见\E为止
\c 匹配一个控制字符

匹配模式
(?m) 分行匹配模式



POSIX   字 符 类
[:alnum:] 任何一个字母或数字(等价于[a-zA-Z0-9]
[:alpha:] 任何一个字母(等价于[a-zA-z])
[:blank:] 空格或制表符(等价于[\t]
[:cntrl:] Ascii控制字符(ASCII0到31,再加上ASCII127
[:digit:] 任何一个数字(等价于[0-9])
[:graph:] 和[:print:]一样,但不包括空格
[:lower:] 任何一个小写字母(等价于[a-z])
[:print:] 任何一个可打印字符
[:punct:] 既不属于[:alnum:]也不属于[:cntrl:]的任何一个字符
[:space:] 任何一个空白字符,包括空格(等价于[^\f\n\r\t\v])
[:upper:] 任何一个大写字母(等价于[A-Z])
[:xdigit:] 任何一个十六制数字(等价于[a-fA-F0-9])
JavaScript不支持在正则表达式里使用POSIX字符类。




(\()?[2-9]\d\d(?(1)\)|-)\d{3}-\d{4}  电话号码 条件
248-555-1234
(222-222-222
(<[aA]\s*[^>]+>\s*)?<[iI][Mm][Gg]\s*[^>]+>(?(1)\s*</[aA]>)
<a href="/home"><img src="/image/"></a>
<img src="/imge">


IP地址
\b(((\d)|(\d\d)|(1\d\d)|(2[0-4]\d)|(25[0-5]))\.){3}((\d)|(\d\d)|(1\d\d)|(2[0-4]\d)|(25[0-5]))\b
192.168.12.13  1111.125.11.11  256.22.1.13  255.255.255.255  f.25.11.5 



\baaa\b  单词   aaa{2}  (aaa){2}
hello are you aaa,bbb aaaa aaaa bbb ccc
dddaaaaaaaaa




URL地址
(([fF][tT][pP])|([hH][tT]{2}[pP][Ss]?))://(\w*:\w*@)?[-\w.]+(:\d+)?(/([\w/_.]*(\?\S+)?)?)?\b
<a href="mailto:http://www.51.com">http://www.51.com</a>  <a href="mailto:https://aaa.fesa.fds">https://aaa.fesa.fds</a> <a href="mailto:http://fsa.fsa.fsda">http://fsa.fsa.fsda</a>. <a href="mailto:ftp://fkjla.fsa">ftp://fkjla.fsa</a>.. <a href="mailto:ftp://fkjla.fsa">ftp://fkjla.fsa</a> <a href="mailto:http://f22jla.55a">http://f22jla.55a</a>



邮箱
\b[\w][\w\d.]*@[\w\d.]+[\w\d]\b
[email protected] [email protected]. [email protected] fdsaklfgsadljgral.fsd [email protected],



回溯 <[hH]([0-6])>.*?</[hH]+\1>)
<h1>fdsa</h1><h1>fsa</h2>
  <h2>fewyhtrytr</h1>
[ ]+(\w+)[ ]+\1 
of of are are are abc is are



\b-\b   边界
fsda-fsa   -    fsa-fsafsae

(19|20)\d{2}  子表达式
(19|20)\d{2}(-\d{2}){2}
1967-08-22
2001-09-22
fsad:fdsafsa
4213421:4231



(?m)^\s*//.*$  分行匹配
// fsafas
// gdafeawfa
// fewafgewa
// fewafesafsafseafase



回朔 替换
(\w+[\w\.]*@[\w\.]+\.\w+)  查询
<a href="mailto:$1">$1</a> 替换
<a href="mailto:[email protected]">[email protected]</a>.
<a href="mailto:[email protected]"</a>
[email protected]
[email protected]



小写转大写
(<[hH]1>)(.+)(</[hH]1>) 查询
$1\U$2\E$3 替换
fsafsafsafsaegdrfsa
fsdafsad<h1>\Ufsdafsa\E</h1>fsafsda
fsafsagasfdsafsdaffsafsad



前后查找(?<=<[Tt][iI][Tt][Ll][Ee]>).*(?=</[tT][iI][Tt][Ll][Ee]>)
前.+(?=:)
后(?<=:).*
<a href="mailto:http://fsda.fsa">http://fsda.fsa</a>
<a href="mailto:http://fsaef.wfesafs">http://fsaef.wfesafs</a>
<title>fsafsa</title>
取非\d+(?!:)
423:4231421
fas:fsda
423:4231
(\b\d{5}(?(?=:):\d{4}|\b))
嵌入条件  \d{5}(?(?=:):\d{4}))
\b\d{5}((?=:):\d{4}|(\s))
11111
22222
33333:
44444:4444




HTML注释查询<!-{2,}.*?-{2,}>
<!--fsaefjsafeaskgjrsdklajfsealkjf-->
<!--fsaefjsafeaskgjrsdklajfsealkjf-->
<!--fsaefjsafeaskgjrsdklajfsealkjf-->
<!--fsaefjsafeaskgjrsdklajfsealkjf-->
<!--fsaefjsafeaskgjrsdklajfsealkjf-->




JavaScript注释查询 //.*
<script language="javascript">
//fsdafsaefseafesa
//fsdafsaefseafesa
//fsdafsaefseafesa
//fsdafsaefseafesa
</script>

你可能感兴趣的:(JavaScript,正则表达式,F#,嵌入式)