PHP正则表达式只匹配具有特定结尾的字符串

时间:2013-08-14 14:07:18

标签: php regex pcre

我正在寻找一个在标题中找到特定字符的PHP正则表达式。这就是我需要的:

我有:

My 110 Title ***

My 110 Title *

A Nice Title ~

我需要一个PHP正则表达式,只能在标题末尾找到标题为****~的标题。

4 个答案:

答案 0 :(得分:3)

/[*~]$/

学习正则表达式。你会在网上找到很多好的教程

答案 1 :(得分:2)

(?<=\s)(~|\*|\*{3})$

您可以尝试HERE

而且,如上所述,您可以找到一个非常好的教程:http://www.regular-expressions.info/

答案 2 :(得分:0)

使用blob作为输入:

<?php

$input = <<<EOB
have:

My 110 Title ***
and

My 110 Title *
and

A Nice Title ~
EOB;

$matches = array();

if(preg_match_all('/(.+?)(\~|\*|\*\*\*)$/m', $input, $matches, PREG_SET_ORDER))
{
    print_r($matches);
}

输出:

Array
(
    [0] => Array
        (
            [0] => My 110 Title ***
            [1] => My 110 Title 
            [2] => ***
        )

    [1] => Array
        (
            [0] => My 110 Title *
            [1] => My 110 Title 
            [2] => *
        )

    [2] => Array
        (
            [0] => A Nice Title ~
            [1] => A Nice Title 
            [2] => ~
        )

)

所以你可以做(​​在匹配之后):

foreach($matches as $match)
{
    doSomethingWithTitle($match[1]);
}

答案 3 :(得分:0)

怎么样:

/\s(?:\*\*\*|\*|~)$/