正则表达式实例总结
(?<![a-z0-9章])\s([^a-z]*?)
匹配前后都不是數字或字母的空格(前面為第x章除外),用于刪去文本中多余空格 第一章 (前面為"章",此處空格不匹配)大廳 She (前后為字母,此處空格不匹配)started to... 她開始 (匹配此處多余空格)走同周游中國各地的旅程
<[^<>]*>
匹配HTML標簽(不支持嵌套,但可多次替換刪除)
[一二三四五六七八九十]
匹配中文章節
(?<=[一二三四五六七八九十]) (?!卷)
匹配前面為中文序號,后面不為卷的空格,替換成頓號"、"或點"." 一 (此處空格匹配)大廳 第 一 (此處空格不匹配)卷
(.+)(?=\r\n\1\r\n)
匹配相同兩行的前一行(捕獲并自動分組) 大廳(匹配這一行內容,不含換行) 大廳
(?<=,\d{3})\r\n(?!\{) 匹配字幕時間軸后換行(換行后沒有大括號) 00:04:03,700 --> 00:04:05,290(匹配此處換行) (此處沒有“{”)快踩油門啊,伙計! Step on the gas, dude! (?<=\r\n)(?<!\d)\r\n(?=\d\d:\d\d:\d\d,) 匹配時間軸中沒有數字序號的換行 15 (此處可能有空格)(此處不匹配,如果沒有紅色的“<”則會匹配,詳見注釋) 01:14:45,842 --> 01:14:50,242 快踩油門啊,伙計! (此處缺失數字序號,匹配) 01:14:51,042 --> 01:14:52,236 快踩油門啊,伙計! 注:如果沒有紅色的"<",(?=\r\n)(?<!\d)\r\n可能會匹配前面"15 "中空格后的換行: (?=\r\n)斷言其后為"\r\n"(事實上,其后確實是"\r\n",也正是我們要匹配的換行,此斷言沒有意義), (?<!\d)斷言其前不是數字,剛好成立 而加了"<"后,(?<=\r\n)斷言其前為"\r\n",如果其前是空格,則無法匹配 =============================以下為轉載,未測試============================= 第[一二兩三四五六七八九十○零百0-91234567890]{1,12}章 按章查找 第[一二兩三四五六七八九十○零百0-91234567890]{1,12}節 按節查找 第[一二兩三四五六七八九十○零百0-91234567890]{1,12}(章|節) 按照章或節查找 ^[1-9]\d*(\.\d+)?(\-[1-9]\d*(\.\d+))?$ 或 ^[0-9]+$ 章節只有數字 <(\s*?)[^>]*>.*?</\1>|<.*? /> 匹配HTML標記(僅僅能匹配部分,對于復雜的嵌套標記依舊無能為力) ^\s*|\s*$ 匹配首尾空白字符(可以用來刪除行首行尾的空白字符(包括空格、制表符、換頁符等等),非常有用的表達式 \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 匹配Email地址 [a-zA-z]+://[^\s]* 匹配網址URL(基本可以滿足需求) ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 匹配帳號是否合法(字母開頭,允許5-16字節,允許字母數字下劃線) \d{3}-\d{8}|\d{4}-\d{7} 匹配國內電話號碼(形式如 0511-4405222 或 021-87888822) [1-9][0-9]{4,} 匹配騰訊QQ號(從10000開始) 匹配中國郵政編碼 [1-9]\d{5}(?!\d) 評注:中國郵政編碼為6位數字 \d{15}|\d{18} 匹配身份證(中國的身份證為15位或18位) \d+\.\d+\.\d+\.\d+ 匹配ip地址(提取ip地址時有用,不完善) ^[1-9]\d*$ 匹配正整數 ^-[1-9]\d*$ 匹配負整數 ^-?[1-9]\d*$ 匹配整數 ^[1-9]\d*|0$ 匹配非負整數(正整數 + 0) ^-[1-9]\d*|0$ 匹配非正整數(負整數 + 0) ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 匹配正浮點數 ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 匹配負浮點數 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ 匹配浮點數 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ 匹配非負浮點數(正浮點數 + 0) ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ 匹配非正浮點數(負浮點數 + 0) ^[A-Za-z]+$ 匹配由26個英文字母組成的字符串 ^[A-Z]+$ 匹配由26個英文字母的大寫組成的字符串 ^[a-z]+$ 匹配由26個英文字母的小寫組成的字符串 ^[A-Za-z0-9]+$ 匹配由數字和26個英文字母組成的字符串 ^\w+$ 匹配由數字、26個英文字母或者下劃線組成的字符串
總結
- 上一篇: STC单片机程序下载失败总结
- 下一篇: 中金公司10大预测错9个:称电动车高景气