用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3278|回复: 7
收起左侧

[版本 2.x] 【自己搞定了】一个正则表达式在CI里无法匹配的问题

[复制链接]
发表于 2011-10-26 17:04:14 | 显示全部楼层 |阅读模式
本帖最后由 leanhunter 于 2011-10-27 13:48 编辑

我写的正则表达式,用Regex Match Tracer测试是通过的,如下图:
match.png
但是在CI里却无法匹配到。
$str='<li>{$r[\'optname\']}</li>';
preg_replace("/\{(\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*\[.+\])\}/","\\1" , $str);




代码不起作用。求了解CI正则表达式相关问题的大大解答。。。
PS:吐槽论坛的代码高亮和为数不多的等宽字体。。。。



10.27 解决:

$str = preg_replace("/\{(\\$[a-zA-Z0-9_\[\]\'\"\$\x7f-\xff]+)\}/", "\\1",$str);

这样解决了,这段是抄的别人的,上面有问题的正则是自己写的。
就没研究我的正则表达式的问题的。现在程序员果然浮躁。遇到问题问别人真不靠谱。




发表于 2011-10-26 21:10:42 | 显示全部楼层
这跟ci有关系嘛?
 楼主| 发表于 2011-10-27 09:09:02 | 显示全部楼层
visvoy 发表于 2011-10-26 21:10
这跟ci有关系嘛?

不一定有关系,但同样的代码拷到CI里头就不能用了,这是事实。
发表于 2011-10-27 12:21:04 | 显示全部楼层
这肯定和 CI 无关,CI 也不是 C++ 写的。。。
你这个代码放到 PHP 里肯定也不行。
PHP 的正则有些地方和其他语言的不一样,你要先看一下 PHP 手册。
发表于 2011-10-27 14:31:50 | 显示全部楼层
那么长一串正则放出来……
有心情去看的人真心不多
发表于 2011-10-27 14:33:59 | 显示全部楼层
\[.+\]
仔细看了一下
不得不说你那程序能匹配才是神奇的事情
 楼主| 发表于 2011-10-31 09:39:17 | 显示全部楼层
acabin 发表于 2011-10-27 14:33
\[.+\]
仔细看了一下
不得不说你那程序能匹配才是神奇的事情

虚心求解~~
发表于 2012-6-29 11:47:17 | 显示全部楼层
首先,这个CI有哪门子关系呢?
其次,这样可以匹配到啊

本版积分规则