作者evernever (Never)
看板RegExp
標題Re: [問題] RE無法表達的字串!?
時間Thu Oct 8 20:49:44 2009
※ 引述《ju22 (分享)》之銘言:
: 前幾天看到一個介紹Regular Expression的網站
: 內容有提到一個範例
: 說像是
: ab
: aabb
: aaabbb
: aaaabbbb
: .....
: (有多少個a後面就要有多少個b)
: 這種字串是RE所無法表達的...
: 說數學上已經證明為不可行?
: 我也想不出來要怎麼用RE來表達..
: 有辦法寫出這種字串的re嗎?
: thanks!!
小弟在 PHP 上試出來了...在此跟大家分享
<?php
preg_match_all("
/^(a(?1)?b)$/","
aabb",$matches);
print_r($matches);
?>
手邊可以跑 PHP 的大大可以測試一下...
ˇ ab
ˇ aabb
ˇ aaabbb
ㄨ aab
ㄨ abb
ㄨ aaabb
.
.
.
如有 bug 歡迎討論 ...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.158.50.103
1F:推 LPH66:原來是用了遞迴的 pattern.... 10/09 03:45
3F:→ LPH66:給不知道的人的連結 10/09 03:46
4F:→ LPH66:那這樣這系列的語法能表示的字串又多很多了@_@ 10/09 03:47
5F:推 cutecpu:推樓上給的補充說明 10/09 07:49
6F:推 bibo9901:推原po和1樓 10/09 13:39
7F:推 janyfor:真酷~~遞迴很像是硬幹幹出來的 @@" 其他語言有支援嗎?? 10/09 16:33
8F:推 lg31cm:perl有類似的能力,其他就很難說了 10/11 02:58
9F:→ lg31cm:問題是這樣炫技的成份大於實用性~ 10/11 02:59
10F:推 coolcomm:酷... 06/27 11:37