찾다
백엔드 개발PHP 튜토리얼新手又有正则问题需要请教!

新手,在打书上的文章发布工具时,用正则匹配URL出了点问题。

$pattern = '/(http\:\/\/|https\:\/\/)?([a-zA-Z0-9-]+\.)+(com|cn|org|net)(\/[\w\%\&\=\'\"\?\/\.]*)?/';$string = 'http://demo.demo.baidu.com';preg_match_all($pattern,$string,$result);

遍历$result的结果是
[code=php]
Array
(
    [0] => Array
        (
            [0] => http://demo.demo.baidu.com
        )
    [1] => Array
        (
            [0] => http://
        )

    [2] => Array
        (
            [0] => baidu.
        )
    [3] => Array
        (
            [0] => com
        )
    [4] => Array
        (
            [0] => 
        )
)
[/php]
第二个子表达式其实是匹配了’www.‘以及’baidu.‘,有两次匹配,但是返回的结果里只有一处匹配T.T
整个表达式是能够匹配整个URL的,但是我要用到第二个子表达式的两次匹配结果,现在只有一个,望各位指教问题出现在哪儿!
感谢!


回复讨论(解决方案)

(http\:\/\/|https\:\/\/)?(([a-zA-Z0-9-]+\.)+)+(com|cn|org|net)(\/[\w\%\&\=\'\"\?\/\.]*)?

楼上大神解决。不过我感觉第二个子表达式后面不用加+

(http\:\/\/|https\:\/\/)?(([a-zA-Z0-9-]+\.)+)(com|cn|org|net)(\/[\w\%\&\=\'\"\?\/\.]*)?

$pattern = '/(http\:\/\/|https\:\/\/)?((?:[a-zA-Z0-9-]+\.)+)(com|cn|org|net)(\/[\w%&=\'"?\/.]*)?/';$string = 'http://demo.demo.baidu.com';preg_match_all($pattern,$string,$result);
Array(    [0] => Array        (            [0] => http://demo.demo.baidu.com        )    [1] => Array        (            [0] => http://        )    [2] => Array        (            [0] => demo.demo.baidu.        )    [3] => Array        (            [0] => com        )    [4] => Array        (            [0] =>         ))

其实我是想用做一个URL添加a标签的函数,要用preg_replace()结合模式修正符e,在replacement参数里要调用到一个函数,给这个函数传入匹配到的字符串也就是URL,书上写的是urlCut('\\1\\2\\3\\4'),我不熟悉也就跟着用这个方法传入了。一开始就出现了最上面那个问题。用了上面大神的方法解决之后是没问题的,但是大神提醒查了手册之后,发现可以直接传入\\0,这也就省了很多事了。万万没想到啊~
再次感谢二位!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
玩转雾锁王国的秘籍给新手指引玩转雾锁王国的秘籍给新手指引Jan 28, 2024 pm 03:33 PM

雾锁王国是一款开放世界的游戏,玩家可以扮演火焰之子进行生存和探索。游戏融合了动作RPG挑战的特色娱乐,为玩家带来无尽的惊喜和欢乐。在游戏中,玩家可以探索资源、环境和武器等内容。对于一些新手玩家,可能会对如何上手游戏感到好奇。在这期的介绍和分享中,我们将为大家提供一些相关的入门指南。雾锁王国新手入门技巧被瘴气笼罩区域的危险等级不同在探索的过程中会逐渐解锁地图的新区域,并且能看到被瘴气笼罩区域的位置。地图上会以两种颜色来区分,蓝色区域是可以短时间进入的,根据角色能力等级高低,可停留的时间也会有所区别

锚点降临新手十连角色推荐锚点降临新手十连角色推荐Feb 20, 2024 pm 02:30 PM

锚点降临是一款拥有高画质美少女二次元主题的3D回合卡牌游戏,提供了丰富角色的精彩组合可供玩家来探索和体验,拥有很多精品阵容的强力搭配,新人玩家也是好奇新手池有哪些强力角色推荐,下面来看看新手十连金的选择参考!锚点降临新手池强力角色推荐第一个十连选艾莉丝,她主要是一个单体雷系爆发角色,单体输出非常爆炸的,对新人的体验也会是非常的友好的,所以十分推荐选取。10抽必金建议选择“艾莉丝”+“羚角”的组合,艾莉丝是最值得选的金皮雷属性输出角色,比新手卡池中的另外2个角色要强得不是一星半点。艾莉丝可以通过特

学会利用批量缩进是PyCharm新手必须掌握的技能学会利用批量缩进是PyCharm新手必须掌握的技能Dec 30, 2023 pm 12:58 PM

PyCharm新手必备技能:掌握批量缩进的使用方法,需要具体代码示例概述:PyCharm是一款功能强大的Python集成开发环境(IDE),它提供了许多实用的工具和功能,帮助开发者提高效率。在日常的编码过程中,我们经常需要对代码进行缩进,保持代码的格式整齐美观。而PyCharm提供的批量缩进功能可以帮助我们快速对代码进行批量缩进,提高编码效率。本文将探讨Py

上古王冠新手攻略玩法介绍上古王冠新手攻略玩法介绍Feb 20, 2024 am 11:20 AM

上古王冠是一款以西方魔幻冒险为背景,高品质有策略的卡牌手游。游戏内秘境探险、遗迹大冒险、全民冠军赛等特色玩法等你来体验。那么对于新手玩家来说,想要快速上手这个游戏当然少不了新手攻略了,今天小编就给大家带来其相关的攻略,一起看看吧。上古王冠新手攻略玩法一览一、开区流派:1.攒钻流:一切以攒钻为主,出村后再发力。除了主要的神兵、三个飞轮活动等需要花钻,其他一概不管,主打一个摆烂,英雄挑战不必理会,能打多少就多少,不强求。优点:只需摆烂攒钻,出村后能有钻石快速接入最新活动,拿新系列硬件英雄,钻石断档概

C语言和C++:哪个更适合编程新手C语言和C++:哪个更适合编程新手Mar 19, 2024 am 08:30 AM

C语言和C++:哪个更适合编程新手在现代科技高速发展的时代,学习编程已经成为一个越来越受欢迎的选择,无论是作为职业发展的一部分,还是作为提高逻辑思维能力的方式。而在众多编程语言中,C语言和C++都是非常经典且具有代表性的语言,许多人对于如何选择C语言还是C++来作为入门编程语言存在疑惑。那么,究竟是C语言更适合编程新手,还是C++更适合呢?需要具体代码示例来

如何用 Golang 正则匹配多个单词或字符串?如何用 Golang 正则匹配多个单词或字符串?May 31, 2024 am 10:32 AM

Golang正则表达式使用管道符|来匹配多个单词或字符串,将各个选项作为逻辑OR表达式分隔开来。例如:匹配"fox"或"dog":fox|dog匹配"quick"、"brown"或"lazy":(quick|brown|lazy)匹配"Go"、"Python"或"Java":Go|Python|Java匹配单词或4位邮政编码:([a-zA

如何用php正则替换以什么开头的字符串如何用php正则替换以什么开头的字符串Mar 24, 2023 pm 02:57 PM

PHP正则表达式是一种针对文本处理和转换的有力工具。它可以通过解析文本内容,并按照特定的模式进行替换或截取,达到有效管理文本信息的目的。其中,正则表达式的一个常见应用是替换以特定字符开头的字符串,对此,我们进行如下的讲解

php 如何用正则去除中文php 如何用正则去除中文Mar 03, 2023 am 10:12 AM

php用正则去除中文的方法:1、创建一个php示例文件;2、定义一个含有中文和英文的字符串;3、通过“preg_replace('/([\x80-\xff]*)/i','',$a);”正则方法去除查询结果中的中文字符即可。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.