【问题标题】:PHP custom regex in urlurl中的PHP自定义正则表达式
【发布时间】:2016-09-26 23:40:12
【问题描述】:

我是 Stackoverflow 的新手,我有一个简单的问题:我需要创建一个正则表达式来匹配字符串中的自定义模式。我想创建一个正则表达式来检测这个网址:

/post-title-92581_1.html

where $match[0] = 92581 and $match[1] = 1

我创建了这个正则表达式((\-[0-9]+)_([1-2]{1}).html) 工作正常,但返回:

$match[0] // -92581
$match[1] // 1

如果我将字符串更改为 /post-title-925-81_1.html 我得到

$match[0] // -81
$match[1] // 1

我只想获得 FIRST MATCH (-925) 没有“-”。

【问题讨论】:

    标签: php regex url preg-match


    【解决方案1】:

    一种解决方案是拆分 RegEx:

    第一个搜索“925”的正则表达式 (-(\d+)[-_]),

    搜索最后一部分的第二个正则表达式 (_([1-2]{1}).html$)。

    【讨论】:

    • 感谢您的回答,我很感激,现在我对正则表达式有了更好的理解,它对我有用,谢谢!。
    【解决方案2】:

    把-放在括号外面...

    -([0-9]+)_([1-2]{1}).html
    

    括号内的所有内容都作为匹配返回!

    【讨论】:

    • 这个工作字数多,正是我需要的,谢谢。
    • 这在第二种情况下给你 81,而我认为你想要 925。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    相关资源
    最近更新 更多