为啥重复?了,谢谢您回答

为啥重复?了,谢谢您回答

1.为什么会有这种情况?把每个匹配的字符打印了两次?

http://img1.sycdn.imooc.com//climg/5c4c2fc2000166f213640661.jpg

2.为什么{1}这个就行?

http://img1.sycdn.imooc.com//climg/5c4c31db000115ba13620669.jpg

3.我其实一开始用的是?符号的,也是重复了,因为如果是空字符串呢?所以用了?

http://img1.sycdn.imooc.com//climg/5c4c32210001510f13630665.jpg

4.请问  /.?/ 是否可以匹配 空字符串?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

你好,. 是所有字符都被匹配,{0,}代表匹配字符出现>=0次就会替换,也就是说,即使什么都没匹配到也算匹配成功,所以替换了一次,通俗的讲解为:

前面不是有个点么,点儿代表,除了换行符之外的所有字符都会被匹配吗,然后后面儿有花括号,零花括号代表意思是大于等于零次所有字符,也就是说。要匹配,能够满足点儿这个字符的大于等于零次。的所有字符,所以在这儿的话,就是说,你出现零次,就是什么都没有的时候就会被匹配一次,就会被替换一次,然后你后面不是有数组吗,每个数组里面不都是一个字符吗,所以这一个字符就出现了一次,所以就是零次被替换一次,然后呢,出现一次的时候又被替换一次。所以被替换了两次,则出现两次。祝学习愉快!


guly 2019-01-29 11:28:38

你好,关于重复情况已经回复,请查看,老师提出的答案在在线编译器也是可以替换成功的,

http://img1.sycdn.imooc.com//climg/5c4fc80800011f6f11810641.jpg

如果您使用同样的代码在在线编译器无发成功,建议贴出运行效果以便帮你解答,祝学习愉快!

guly 2019-01-27 12:20:45

你好,建议参考:

<?php
$pattern='/[a-z]{1,}/';
$replace='IMOOC';
$subject=['a','b','c','1','^'];
$result=preg_filter($pattern,$replace,$subject);
print_r($result);
$result=preg_replace($pattern,$replace,$subject);
print_r($result);
?>

如果解决您的问题请采纳,祝学习愉快!

  • 提问者 轩辕小齐V #1
    a-z 里面包括^ 这个符号么?您读读题行么???
    2019-01-27 12:24:14
  • 提问者 轩辕小齐V #2
    还有我给你们找错,你们改完错,就把问题删了,你们还真的很要脸啊
    2019-01-27 12:24:54
  • guly 回复 提问者 轩辕小齐V #3
    你好,建议自己运行效果看一下结果是否正确,如果有问题请指出,非常感谢您的提出,请学生注意文明用语,祝学习愉快!
    2019-01-27 12:29:26
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师