一個簡易的Regex測試載入器

來源:互聯網
上載者:User

設想、驗證、比較、總結這無窮迴圈貫穿於學習Regex的始終。為了便捷直觀地看到一個Regex作用於一段文本的匹配結果,使用PHP寫了一個簡易的Regex測試載入器。Regex的匹配使用PHP中的preg_match函數。頁面中一個textarea用來輸入待搜尋的文本,一個edit用來輸入Regex。主要代碼如下:

$pattern = '/'.$_GET['pattern'].'/';<br />$result = "";<br />//preg_match返回後,$matches[0][0]是匹配的字串,$matches[0][1]是匹配的字串的開始位置<br />while(preg_match($pattern, $input, $matches, PREG_OFFSET_CAPTURE)) {<br />$tmp = substr($input, 0, $matches[0][1]);<br />$result .= htmlspecialchars($tmp);<br />$result .= "<font color=RED style="background:yellow"><strong>";<br />$result .= htmlspecialchars($matches[0][0]);<br />$result .= "</strong></font>";<br />$input = substr($input, $matches[0][1]+strlen($matches[0][0]));<br />$c++;<br />}<br />$result .= htmlspecialchars($input);

例如:
文本:
<body>
<h1>h1</h1> <h2>h2</h2> <h3>h34</h4>
</body>
Regex:<[Hh]([1-6])>.*?<//[Hh]/1>
匹配後:

<body><h1>h1</h1> <h2>h2</h2> <h3>h34</h4></body>

2 matches

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.