功能簡介:
支持僅使用表達式里的選中部分進行匹配
支持樹形和表格兩種結果查看方式
選中樹結點或單元格時自動選中源文本中對應的部分
表格內容可導出為csv文件(在表格模式下,右擊結果,選擇彈出菜單里的"導出(*.csv)")
支持拖入文件作為匹配源文本
支持快捷鍵操作(F5運行, F4切換查詢替換模式, F6切換結果顯示方式, F2復制代碼, F8切換焦點)
支持生成并拷貝C#代碼到系統剪切板
支持忽略大小寫,單行模式,多行模式,忽略空白,顯式匹配等多種選項
自動加載上次關閉前運行的最后一組數據
可解析類似new Regex("abc", RegexOptions.Singleline | RegexOptions.Multiline)格式的C#代碼
正則表達式的預搜索:
正則表達式:(?<=src=").*?(?=") "表示轉義,即雙引號"
其中(?<=)為反向預搜索,表示要匹配的字符串前面必須是scr="
(?=)為正向預搜索,表示要匹配的字符串后面必須是"
.*?表示要匹配的部分
比如:
正式表達式:(?<=src=").*?(?=")
待測試的文本:<img src="/UploadFiles/image/20140304/20140304094318_2971.png" alt="正則表達式測試工具RegexTester" />
那么執行這個正則表達式后,就可以提取出/UploadFiles/image/20140304/20140304094318_2971.png
正則表達式入門:
b匹配單詞的開始或結束
*表示重復0零次或多次
?表示重復0次或1次
+表示重復1次或多次
{n} 重復n次
{n,} 重復n次或更多次
{n,m} 重復n到m次
.表示除了換行符以外的任意字符
.*連在一起就意味著任意數量的不包含換行的字符
d表示一位數字(0,或1,或2…或9)
s表示任意的空白符,包括空格,制表符(Tab),換行符,中文全角空格
w匹配字母或數字或下劃線或漢字
^匹配字符串的開始
$匹配字符串的結束
表示轉義,比如"表示",(表示(
[]表示范圍,比如[.?!]匹配標點符號(.或?或!),[0-9]代表的含意與d就是完全一致的:表示1位數字;同理[a-z0-9A-Z_]也完全等同于w(如果只考慮英文的話)
|表示分支(或者),比如d{5}-d{4}|d{5}這個表達式用于匹配美國的郵政編碼。美國郵編的規則是5位數字,或者用連字號間隔的9位數字。之所以要給出這個例子是因為它能說明一個問題:使用分枝條件時,要注意各個條件的順序。如果你把它改成d{5}|d{5}-d{4}的話,那么就只會匹配5位的郵編(以及9位郵編的前5位)。原因是匹配分枝條件時,將會從左到右地測試每個條件,如果滿足了某個分枝的話,就不會去再管其它的條件了。
我們已經提到了怎么重復單個字符(直接在字符后面加上限定符就行了);但如果想要重復多個字符又該怎么辦?你可以用小括號來指定子表達式(也叫做分組),然后你就可以指定這個子表達式的重復次數了,你也可以對子表達式進行其它一些操作(后面會有介紹)。
(d{1,3}.){3}d{1,3}是一個簡單的IP地址匹配表達式。要理解這個表達式,請按下列順序分析它:d{1,3}匹配1到3位的數字,(d{1,3}.){3}匹配三位數字加上一個英文句號(這個整體也就是這個分組)重復3次,最后再加上一個一到三位的數字(d{1,3})。
IP地址中每個數字都不能大于255. 經常有人問我, 01.02.03.04 這樣前面帶有0的數字, 是不是正確的IP地址呢? 答案是: 是的, IP 地址里的數字可以包含有前導 0 (leading zeroes).
不幸的是,它也將匹配256.300.888.999這種不可能存在的IP地址。如果能使用算術比較的話,或許能簡單地解決這個問題,但是正則表達式中并不提供關于數學的任何功能,所以只能使用冗長的分組,選擇,字符類來描述一個正確的IP地址:((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)。
理解這個表達式的關鍵是理解2[0-4]d|25[0-5]|[01]?dd?
W匹配任意不是字母,數字,下劃線,漢字的字符
S匹配任意不是空白符的字符
D匹配任意非數字的字符
B匹配不是單詞開頭或結束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou這幾個字母以外的任意字符
例子:S+匹配不包含空白符的字符串。
<a[^>]+>匹配用尖括號括起來的以a開頭的字符串。
您的評論需要經過審核才能顯示
有用
有用
有用