php preg_match有多种模式

时间:2015-05-12 08:15:48

标签: php regex preg-match

我有两种模式,我想用字符串搜索它们。 他们是这样的:

$pattern = '/,3$/'
$pattern = '/^1,/';

实际上我想查找以1,开头或以1,

结尾的字符串

我的字符串采用以下格式:

,3

例如a和c是匹配!
我如何使用preg_match来检查这种模式?
救助坦克。

3 个答案:

答案 0 :(得分:5)

以这种方式试试

preg_match("/^1,|,3$/", $string)

答案 1 :(得分:1)

/(^1,)|(,3$)/应该适合你。

答案 2 :(得分:1)

为了防止有一天您需要非正则表达式解决方案,您可以使用以下startswith and endswith functions

function startsWith($haystack, $needle) {
        // search backwards starting from haystack length characters from the end
        return $needle === "" || strrpos($haystack, $needle, -strlen($haystack)) !== FALSE;
    }
function endsWith($haystack, $needle) {
        // search forward starting from end minus needle length characters
        return $needle === "" || (($temp = strlen($haystack) - strlen($needle)) >= 0 && strpos($haystack, $needle, $temp) !== FALSE);
    }

if (startsWith("1,2", "1,") || endsWith("1,2", ",3"))
 echo "True1". "\n";
if (startsWith("31,2", "1,") || endsWith("31,2",",3"))
 echo "True2". "\n";
if (startsWith("4,3", "1,") || endsWith("4,3",",3"))
 echo "True3" . "\n";

IDEONE demo的输出:

True1
True3