亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > regex > 正文

正則表達式練習器

2020-01-20 22:31:20
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

<HTML>
<HEAD>
<TITLE>正則表達式練習器</TITLE>
<meta name = 安徽 池州 統計局 徐祖寧 e-mail:czjsz@stats.gov.cn>
<script language="JavaScript">
function OnMove() {
window.status = "("+window.event.clientX+","+window.event.clientY+")" + " :: "+document.location
}
</script>

<SCRIPT LANGUAGE="JavaScript1.2">
var re = new RegExp() //建立正則表達式對象
var nextpoint = 0 //匹配時的偏移量
//設置正則表達式
function setPattern(form) {
var mode
if(form.chkmode.checked) mode = "gi" //i:不分大小寫 g:全局,好象沒什么作用
else mode = "g"
re.compile(form.regexp.value,mode)
nextpoint = 0
form.reglist.value = ""
}
//檢查是否有匹配
function findIt(form) {
setPattern(form)
var input = form.main.value
if (input.search(re) != -1) {
form.output[0].checked = true
} else {
form.output[1].checked = true
}
}
//檢查匹配位置
function locateIt(form) {
setPattern(form)
var input = form.main.value
form.offset.value = input.search(re)
}
//檢查所有的匹配情況
function execIt(form) {
if(nextpoint == 0 || ! form.scankmode.checked) {
findIt(form)
form.reglist.value = ""
}
var key = true
if(form.scankmode.checked) key = false
do {
var input = form.main.value
var matchArray = re.exec(input.substr(nextpoint))
if(matchArray) {
for(var i=1;i<matchArray.length;i++)
matchArray[i] = "$"+i+":"+matchArray[i]
form.reglist.value = (nextpoint+matchArray.index)+" => " + matchArray[0] +"/n"+form.reglist.value
form.matchlist.value = "$0:"+matchArray.join("/n")
nextpoint = nextpoint + matchArray.index + matchArray[0].length
}else {
if(!key)
form.reglist.value = "沒有找到/n" + form.reglist.value
form.matchlist.value = " "
nextpoint = 0
key = false
}
}while (key)
}
//設置當前使用的正則表達式
function setregexp(n) {
var s = document.all.regexplist.value.split("/r/n")
document.all.regexp.value = s[n*2-1] //.replace("/r","")
nextpoint = 0
}

//定義選擇監視
var isNav = (navigator.appName == "Netscape")
function showSelection() {
if (isNav) {
var theText = document.getSelection()
} else {
var theText = document.selection.createRange().text
}
if(theText.length>0 && document.all.selechkmode.checked)
document.all.regexp.value = theText
}
if (isNav) {
document.captureEvents(Event.MOUSEUP)
}
document.onmouseup = showSelection
</SCRIPT>

</HEAD>
<BODY style="font-size=9pt;" OnMouseMove=OnMove()>
<FORM><table width=100% cellspacing=0 cellpadding=0><tr><td><font color=red>正規表達式練習器</font></td><td align=right><a href=mailto:czjsz_ah@stats.gov.cn>czjsz_ah@stats.gov.cn</a></td></tr></table>
<table width=100% broder=1 frame=above rules=none style="font-size:9pt;">
<tr><td width=50% valign=top>
輸入一些被尋找的正文:<BR>
<TEXTAREA NAME="main" COLS=58 ROWS=5 WRAP="virtual" style="font-size:9pt;">
09-11-2001 09/11/2001 czjsz_ah@stats.gov.cn
asdff 12345 196.168.1.3 www.sohu.com ftp://www.chinaasp.com 2001.9.11 http://www.active.com.cn/club/bbs/bbsView.asp http://www.163.com/inden.htm
</TEXTAREA><BR>
進行匹配的正規表達式:  忽略大小寫<INPUT TYPE="checkbox" NAME="chkmode" checked style="font-size:8pt;height:18px"><BR>
<TEXTAREA NAME="regexp" COLS=51 ROWS=5 style="font-size:9pt;"></TEXTAREA>
<INPUT TYPE="button" VALUE="清除" onClick="this.form.regexp.value=''" style="font-size:8pt;height:18px"><BR>
<INPUT TYPE="button" VALUE="能找到嗎?[regexObject.test(string)]" style="font-size:8pt;width:70%;height:18px" onClick="findIt(this.form)">
<INPUT TYPE="radio" NAME="output" style="font-size:8pt;height:18px">Yes
<INPUT TYPE="radio" NAME="output" style="font-size:8pt;height:18px">No <BR>
<INPUT TYPE="button" VALUE="在哪里?[string.search(regexObject)]" style="font-size:8pt;width:70%;height:18px" onClick="locateIt(this.form)">
<INPUT TYPE="text" NAME="offset" SIZE=4 style="font-size:8pt;height:18px">
</td>
<td valign=top>
測試用正則表達式列表: 
使用第<input type=text name=num size=2 value=1 style="font-size:8pt;height:18px">個<input type=button value=Go onClick=setregexp(this.form.num.value) style="font-size:8pt;height:18px">
    允許復制<INPUT TYPE="checkbox" NAME="selechkmode" style="font-size:8pt;height:18px">
<textarea NAME="regexplist" cols=58 rows=14 wrap=off style="font-size:9pt;">
1.檢查日期:
(1[0-2]|0?[1-9])[-./](0?[1-9]|[12][0-9]|3[01])[-./](/d/d/d/d))
2.檢查數字:
([-+]?[0-9]+/.?[0-9]+)
3.檢查URL:
((http|ftp)://)?(((([/d]+/.)+){3}[/d]+(/[/w./]+)?)|([a-z]/w*((/./w+)+){2,})([/][/w.~]*)*)
4.檢查E-mail
/w+@((/w+[.]?)+)
</textarea>
</td></tr>
<tr><td valign=bottom>
<INPUT TYPE="button" VALUE="有哪些?[regexObject.exec(string)]" style="font-size:8pt;width:70%;height:18px" onClick="execIt(this.form)">
  單步<INPUT TYPE="checkbox" NAME="scankmode" style="font-size:8pt;height:18px"><BR>
<TEXTAREA NAME="reglist" COLS=58 ROWS=8 style="font-size:9pt;"></TEXTAREA>
</td>
<td valign=bottom>
匹配到的成分:(單步時可見)
<TEXTAREA NAME="matchlist" COLS=58 ROWS=8 style="font-size:9pt;"></TEXTAREA>
</td></tr></table></FORM>
<script>
setregexp(1)
</script>
</BODY>
</HTML>


對正則表達式練習器的改進,原貼ID901680

覆蓋原execIt函數
修改后的execIt函數允許對多個正則表達式進行匹配(每個正則表達式一行),并對每一個匹配成分顯示出是第幾個正則表達式匹配的。
這可視為語法分析的雛形,只要對匹配產生相應的動作。

function execIt(form) {
var mode
if(form.chkmode.checked) mode = "gi"
else mode = "g"
var regexpArray = form.regexp.value.split("/r/n") //獲取正則表達式到數組

if(nextpoint == 0) form.reglist.value = ""
var key = true
if(form.scankmode.checked) key = false
else nextpoint = 0
do {
var offs = 9999999999
var pos = -1
var input = form.main.value.substr(nextpoint)
//對每個正則表達式進行匹配
for(var i=0;i<regexpArray.length;i++) {
re.compile(regexpArray[i],mode)
var matchArray = re.exec(input)
if(matchArray) {
if(offs > matchArray.index) {
offs = matchArray.index
pos = i //保存距離起始位子最近的匹配
}
}
}
if(pos>=0) {
re.compile(regexpArray[pos],mode)
var matchArray = re.exec(input)
for(var i=1;i<matchArray.length;i++)
matchArray[i] = "$"+i+":"+matchArray[i]
form.reglist.value = "["+(pos+1)+"]"+(nextpoint+matchArray.index)+" => " + matchArray[0] +"/n"+form.reglist.value
form.matchlist.value = "$0:"+matchArray.join("/n")
nextpoint = nextpoint + matchArray.index + matchArray[0].length
}else {
if(!key)
form.reglist.value = "沒有找到/n" + form.reglist.value
form.matchlist.value = " "
nextpoint = 0
key = false
}
}while(key)
}

上一篇:ubbcode簡單實用

下一篇:17種正則表達式

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久夜色精品国产亚洲aⅴ| 中文字幕欧美精品在线| 国模视频一区二区三区| 国产精品视频1区| 国产精品美女久久久久av超清| 日韩高清电影好看的电视剧电影| 欧美日韩免费在线观看| 亚洲精品中文字幕有码专区| 日本精品在线视频| 亚洲香蕉成人av网站在线观看| 日av在线播放中文不卡| 在线观看亚洲区| 国产一区二区三区视频免费| 国自在线精品视频| 成人国产精品久久久久久亚洲| 欧美国产日韩一区二区三区| 宅男66日本亚洲欧美视频| 欧美国产日韩一区二区| 久久久久国产一区二区三区| 成人黄色av网| 日韩国产欧美精品在线| 国产精品日韩精品| 色999日韩欧美国产| 国产精品视频精品| 亚洲性猛交xxxxwww| 欧美激情视频一区| 成人欧美一区二区三区在线| 亚洲精品综合久久中文字幕| 国产成人精品久久二区二区91| 成人精品视频在线| 亚洲国产女人aaa毛片在线| 91影视免费在线观看| 中文国产成人精品久久一| 国产精品女视频| 日韩av中文字幕在线免费观看| 欧美激情国产精品| 久久影视电视剧凤归四时歌| 国产在线98福利播放视频| 国产日韩在线亚洲字幕中文| 国产91在线播放精品91| 成人高h视频在线| 亚洲免费视频一区二区| 久久人人爽人人爽人人片亚洲| 日韩国产一区三区| 亚洲美腿欧美激情另类| 国产精品久久久久久久久粉嫩av| 国产91成人在在线播放| 66m—66摸成人免费视频| 国产精品久久久精品| 51精品国产黑色丝袜高跟鞋| 亚洲色图13p| 奇门遁甲1982国语版免费观看高清| 精品久久久久久国产91| 欧美黑人狂野猛交老妇| 久久精品久久精品亚洲人| 91精品国产91久久久久福利| 国产丝袜精品第一页| 国产精品中文字幕在线观看| 国产精品扒开腿爽爽爽视频| 亚洲精品99久久久久| 中文亚洲视频在线| 日韩中文在线不卡| 亚洲欧洲一区二区三区久久| 国精产品一区一区三区有限在线| 欧美激情第99页| 综合欧美国产视频二区| 国产一区二区三区在线播放免费观看| 亚洲社区在线观看| 色偷偷综合社区| 国产精品wwwwww| 欧美性色19p| 国产精品自拍视频| 91av在线播放视频| 国产主播欧美精品| 96国产粉嫩美女| 日韩国产欧美精品在线| 国产精品久久中文| 国产噜噜噜噜噜久久久久久久久| 456亚洲影院| 久操成人在线视频| 精品国偷自产在线视频99| 欧美激情在线有限公司| 国产视频精品免费播放| 亚洲人午夜精品| 国产亚洲欧洲高清| 欧美亚洲另类在线| 亚洲欧洲日韩国产| 亚洲激情在线观看| 国产香蕉精品视频一区二区三区| 国内精品久久影院| 成人国内精品久久久久一区| www.日韩系列| 日韩一区二区av| 最近更新的2019中文字幕| 国产精品精品视频一区二区三区| 中文亚洲视频在线| 亚洲欧美成人在线| 日韩高清欧美高清| 久久天天躁狠狠躁夜夜躁2014| 国产精品久久久久久久久久小说| 欧美日韩成人精品| 亚洲欧美日韩国产成人| 亚洲国产精品免费| 亚洲国产精品成人一区二区| 最近更新的2019中文字幕| 久久91亚洲人成电影网站| 成人网在线免费观看| 一区二区三区回区在观看免费视频| 久久视频国产精品免费视频在线| 久久久久久综合网天天| 2020欧美日韩在线视频| 91中文字幕一区| 日韩欧美在线视频日韩欧美在线视频| 成人精品久久一区二区三区| 精品亚洲国产成av人片传媒| 日韩一二三在线视频播| www国产亚洲精品久久网站| 欧美老女人性视频| 欧洲成人午夜免费大片| 在线亚洲男人天堂| 日韩精品久久久久久福利| 国模精品视频一区二区| 欧美区二区三区| 91在线观看免费网站| 亚洲免费中文字幕| 欧美激情综合色综合啪啪五月| 久久精品久久精品亚洲人| 亚洲自拍偷拍网址| 一区二区三区四区视频| 国产成人精品久久二区二区91| 午夜精品免费视频| 欧美激情a∨在线视频播放| 亚洲福利影片在线| 国内精久久久久久久久久人| 黄色成人av网| 全球成人中文在线| 97在线免费观看| 亚洲欧美国产一本综合首页| 亚洲成人av中文字幕| 色狠狠av一区二区三区香蕉蜜桃| 国产精品成人在线| 在线免费观看羞羞视频一区二区| 欧美最猛黑人xxxx黑人猛叫黄| 黄色一区二区在线| 国产美女精品免费电影| 亚洲欧美精品一区二区| 自拍视频国产精品| 国产精品18久久久久久麻辣| 国产一区二区三区在线| 国产自产女人91一区在线观看| 欧美一区深夜视频| www.日韩视频| 欧美性色视频在线| 2024亚洲男人天堂| 欧美另类99xxxxx| 91探花福利精品国产自产在线| 欧美激情精品久久久久| 色777狠狠综合秋免鲁丝| 国产在线播放91| 第一福利永久视频精品| 久久久久久久久中文字幕| 久久久久久久久久久人体| 久久精品视频导航| 最近2019中文字幕一页二页|