正则表达式常用内容
常用元字符
代码 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线或汉字 |
\s | 匹配任意空白字符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
常用限定符
代码 | 说明 |
---|---|
* | 重复零次或多次 |
+ | 重复一次或多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n-m次 |
通配符(.)
使用"."可以匹配任何字符,如果要匹配"."本身,那么需要使用转义字符来取消"."的特殊意义,如"." 来匹配"."
Task Text Match cat. Success Match 896. Success Match ?=+. Success Skip abc1 Pattern: ...\.
匹配特定字符
使用"[]"可以将需要匹配的特定字符放在方括号中进行匹配,如:只匹配a,b,c,那么可写成[abc]
Task Text
Match can Success
Match man Success
Match fan Success
Skip dan To be completed
Skip ran To be completed
Skip pan
Pattern: [cmf]an
排除特定字符
使用方法和上面的"[]"类似,只是在字符前加上"",以表示之后的这些字符是排除匹配的。如:[abc]表示除了a,b,c之外的任何字符都可以进行匹配。
Task Text
Match hog Success
Match dog Success
Skip bog
Pattern: [^b]og
字符范围
如果要匹配的字符太多,那我们并不需要将所有字符都像上面一样全部列出来,只需用"-"将范围表示出来。[0-6]表示只匹配0-6的数字,[^n-p]表示不匹配n-p的任何字符。"\w"等价于[A-Za-z0-9_]
Task Text
Match Ana Success
Match Bob Success
Match Cpc Success
Skip aax To be completed
Skip bby To be completed
Skip ccz
Pattern: [A-C]
重复
如果我们要匹配的相同字符有好几个,使用"\w\w\w"就显得有点麻烦,所以可以通过下面这种方法来匹配多个字符的情况,如:有3个"a"要匹配,则直接用a{3}表示即可。a{1,3}重复1-3次,[wxy]{5},w/x/y 任意一个字符重复5次,.{2-6}则表示任意字符重复2-6次
Task Text
Match wazzzzzup Success
Match wazzzup Success
Skip wazup
Pattern: waz{2}
"*": 重复0次或者多次 "+": 重复1次或者多次
Task Text
Match aaaabcc Success
Match aabbbbc Success
Match aacc Success
Skip a
Pattern: a*b*c+
"?": 重复零次或一次
Task Text Match 1 file found? Success Match 2 files found? Success Match 24 files found? Success Skip No files found. To be completed Pattern: [0-9]+ files? found\?
匹配空白符
"\s" 可以匹配任意的空白符
Task Text Match 1. abc Success Match 2. abc Success Match 3. abc Success Skip 4.abc To be completed Pattern: \d\.\s+abc
匹配行起始/结束字符
"^": ^abc 匹配以abc开头的字符 "$": abc$ 匹配以abc结束的字符
Task Text
Match Mission: successful Success
Skip Last Mission: unsuccessful To be completed
Skip Next Mission: successful upon capture of target To be completed
Pattern: ^Mission:
匹配组
"()" 将要匹配的内容放在()中
Task Text Capture Groups
Capture file_record_transcript.pdf file_record_transcript Success
Capture file_07241999.pdf file_07241999 Success
Skip testfile_fake.pdf.tmp To be completed
Pattern: ^(file_\w+)
嵌套分组
"(())" 将多个组进行嵌套匹配
Task Text Capture Groups Capture Jan 1987 Jan 1987 1987 Success Capture May 1969 May 1969 1969 Success Capture Aug 2011 Aug 2011 2011 Success Pattern: ^(\w+\s(\d+))
多个分组组合
Task Text Capture Groups
Capture 1280x720 1280 720 Success Capture 1920x1600 1920 1600 Success Capture 1024x768 1024 768 Success Pattern: (\d+)\w(\d+)
增加可读性
Task Text Match I love cats Success Match I love dogs Success Skip I love logs To be completed Skip I love cogs Pattern: I love (cats|dogs) Pattern: ([cd]ats*|[dh]ogs?)
练习
Task Text Match 3.14529 Success Match -255.34 Success Match 128 Success Match 1.9e10 Success Match 123,340.00 Success Skip 720p To be completed Pattern: ^-?\d+(,\d+)*(\.\d+(e\d+)?)?$ Capture 415-555-1234 415 Success Capture 650-555-2345 650 Success Capture (416)555-3456 416 Success Capture 202 555 4567 202 Success Capture 4035555678 403 Success Capture 1 416 555 9292 416 Success Pattern: 1?\s?\(?(\d{3})\)?[\s-]?\d{3}[\s-]?\d{4} Task Text Capture Groups Capture tom@hogwarts.com tom Success Capture tom.riddle@hogwarts.com tom.riddle Success Capture tom.riddle+regexone@hogwarts.com tom.riddle Success Capture tom@hogwarts.eu.com tom Success Capture potter@hogwarts.com potter Success Capture harry@hogwarts.com harry Success Capture hermione+regexone@hogwarts.com hermione Success Pattern: ^([\w\.]*) Task Text Capture Groups Capture <a>This is a link</a> a Success Capture <a href='https://regexone.com'>Link</a> a Success Capture <div class='test_style'>Test</div> div Success Capture <div>Hello <span>world</span></div> div Success Pattern: <(\w+)* Task Text Capture Groups Skip .bash_profile To be completed Skip workspace.doc To be completed Capture img0912.jpg img0912 jpg Success Capture updated_img0912.png updated_img0912 png Success Skip documentation.html To be completed Capture favicon.gif favicon gif Success Skip img0912.jpg.tmp To be completed Skip access.lock To be completed Pattern: (\w+)(\.)(jpg|png|gif)$ Task Text Capture Groups Capture The quick brown fox... The quick brown fox... Success Capture jumps over the lazy dog. jumps over the lazy dog. Success Pattern: ^\s*(.*)\s*$ Task Text Capture Groups Skip W/dalvikvm( 1553): threadid=1: uncaught exception To be completed Skip E/( 1553): FATAL EXCEPTION: main To be completed Skip E/( 1553): java.lang.StringIndexOutOfBoundsException To be completed Capture E/( 1553): at widget.List.makeView(ListView.java:1727) makeView ListView.java 1727 Success Capture E/( 1553): at widget.List.fillDown(ListView.java:652) fillDown ListView.java 652 Success Capture E/( 1553): at widget.List.fillFrom(ListView.java:709) fillFrom ListView.java 709 Success Pattern: \.+(\w+)+\((\w+\.\w+)+:(\d+)\) Pattern: (\w+)\(([\w\.]+):(\d+)\) Task Text Capture Groups Capture ftp://file_server.com:21/top_secret/life_changing_plans.pdf ftp file_server.com 21 Success Capture https://regexone.com/lesson/introduction#section https regexone.com Success Capture file://localhost:4040/zip_file file localhost 4040 Success Capture https://s3cur3-server.com:9999/ https s3cur3-server.com 9999 Success Capture market://search/angry%20birds market search Success Pattern: (\w+)://([\w\.-]+)(:(\d+))?
posted on 2017-03-19 15:49 vbirdchong 阅读(432) 评论(0) 编辑 收藏 举报