带有特殊字符的php preg_分割
为什么最后一个不起作用?“@with/for”构建php正则表达式的具体区别是什么带有特殊字符的php preg_分割,php,regex,preg-split,Php,Regex,Preg Split,为什么最后一个不起作用?“@with/for”构建php正则表达式的具体区别是什么 thx用于澄清最后一个在我的机器上运行良好(PHP 5.3.10,但应该在任何地方都可以运行): thebod@dockmaster:~/Sites$php 基本上,@和/之间没有区别,因为您可以使用任何特殊字符进行预匹配。只需注意以您使用的相同字符开始和结束您正在使用的工具已损坏。 如果将默认代码更改为 thebod@dockmaster:~/Sites$ php <?php $tags = preg_s
thx用于澄清最后一个在我的机器上运行良好(PHP 5.3.10,但应该在任何地方都可以运行):
thebod@dockmaster:~/Sites$php
基本上,@和/之间没有区别,因为您可以使用任何特殊字符进行预匹配。只需注意以您使用的相同字符开始和结束您正在使用的工具已损坏。
如果将默认代码更改为
thebod@dockmaster:~/Sites$ php
<?php
$tags = preg_split('/\//', '1/2//3', NULL, PREG_SPLIT_NO_EMPTY);
print_r($tags);
/////////////////
Array
(
[0] => 1
[1] => 2
[2] => 3
)
它应该输出Hello\World
,而不是像它那样输出Hello World
这解释了'/\/'
中断的原因:此工具将其视为'//'
,它不是有效的正则表达式。双反斜杠的解释是正确的:'/\\/'
可以工作(但这是因为PHP“看到”'/\/'
,这相当于'/\\/'
)
再检查一次:
echo 'Hello\ World';
应打印34
。在它上面打印的3 3 4
应该也适用于PHP5.0,最好在您自己的机器上检查这些代码,这些在线工具总是有很多限制(可能还有反斜杠问题),因为没有理由说明'@/'
和'/\/'
应该不同,您能告诉我们您的php版本吗?好的(根据您对董事会的回复),所以问题不在于PHP,而在于您正在使用的网站,请参阅我的答案了解任何好的在线PHP脚本测试仪?无论您在此类网站上能做什么,您都可以在命令行上做得更好。Google命令行PHP。如果您需要HTML输出,共享托管解决方案最适合您。从PHP filename.PHP
echo 'Hello\ World';
echo strlen('///'), ' ', strlen('/\//'), ' ', strlen('/\\//');