使用PHP preg_match

时间:2011-05-16 16:27:10

标签: php preg-match

我需要从几行文字

中找到一个特定的文本行

所以,我有一个包含几行文字的文本文件,例如:

JOHN
MIKE
BEN
*BJAMES
PETE

我将这些内容读入一个数组,每行文本都放在数组的单独元素中。

然后我测试了数组的每个元素,找到以...开头的行,比如:* B

即:

if ( preg_match( "/^\*(B)/",$contents[$a] ) )

为什么dosnt有效?

3 个答案:

答案 0 :(得分:1)

请考虑以下代码:

$regex = "%\*B(.*?)%is"; 

if (preg_match($regex, $contents[a]))  {  /// do something }

此外,您可能会发现此幻灯片非常有助于学习正则表达式:

http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/

答案 1 :(得分:0)

我不会在这里使用双引号,因为\是一个转义序列:

if ( preg_match( '/^\*(B)/',$contents[$a] ) )

即使使用双引号,它也适用于我,因此您可能需要检查$contents[$a]是什么:

$myline = "*BJAMES";
if( preg_match( "/^\*(B)/", $myline) )
{
  echo "Yes\n";
}

答案 2 :(得分:0)

以下适用于我(其中$ txt是您的原始数据):

foreach ( explode("\n", $txt) as $a ) {
    if ( preg_match( "/^\*B/", $a ) ) {
        echo "**MATCH " . $a . "<br/>";
    }
}