作者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