dpj96988 2016-05-10 10:11
浏览 90
已采纳

如何在PHP中使用正则表达式来获得双反斜杠之后的东西

I have this sentence

C:\\wamp\\www\\callCenter\\joomlatools-files\\docman-files\\test.pdf

And I want to get as a result of my regex exression test but without using another word from the sentence.

My regex is ~\\\(.+)\.pdf~ but I have wamp\www\portail-callcenter\joomlatools-files\docman-files\test as a result. Can someone please explain how to get it done?

  • 写回答

4条回答 默认 最新

  • dsuoedtom207012191 2016-05-10 10:17
    关注

    I'm not sure what are you trying to get. But I guess you want to get the word of test from your first sentence. So use this pattern:

    ~\\\\(\w+)\.pdf$~
    

    And then $1 containing what you need.

    Online Demo

    • ~ delimiter
    • \\\\ matches two backslashes literally
    • ( capturing group $1 (which is containing what you need to get)
    • \w+ matches one or more letter, number or underscore
    • \. matches a dot literally
    • $ end of string

    Here is your pattern in the question ~\\\(.+)\.pdf~. The problem of your pattern is .+. Because it means one or more character(s) (every character even \). So your pattern matches that two backslashes which are in the beginning of your string, and the rest of backslashes will be match as every character (.+).

    To avoid this, you have to use \w which means any letter, number or underscore instead. In this case the matched part will be just test.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分