PHP preg_match两个值如何检查||操作者

时间:2015-08-11 16:28:36

标签: php preg-match

我需要检查字符串是否包含F:#{blabla}或#F:{blabla}如何使用preg_match执行此操作?我尝试使用此代码,但是当我在字母F之前添加#时,它不会运行代码:

if (preg_match('/F: ([A-za-z0-9]+) ([A-za-z0-9]+)( # (\{.*?\})){0,1}/', $line, $match) || preg_match('/# F: ([A-za-z0-9]+) ([A-za-z0-9]+)( # (\{.*?\})){0,1}/', $line, $match)) {
    echo 'STRING Contains F: and # F:';
}

以下是示例:

<?php
$line = 'F: bbb bbb # { startdate=2015-08-10 | enddate=2015-11-10 | info=info | dealer=person548 | test=0 | emu=unknown | free=0 }';
/* $line = '# F: bbb bbb # { startdate=2015-08-10 | enddate=2015-11-10 | info=info | dealer=person548 | test=0 | emu=unknown | free=0 }'; */
if (preg_match('/(# )?F: ([A-za-z0-9]+) ([A-za-z0-9]+)( # (\{.*?\})){0,1}/', $line, $match)) {
    echo 'STRING Contains F: and # F:';
}

1 个答案:

答案 0 :(得分:1)

模式应如下所示:

$pattern = '/(F: #|# F:) \{ blabla \}/';

请注意捕捉地(F: #|# F:)。它匹配由|分隔的模式之一。

Try it online