string包含5个数字和行

时间:2017-01-24 13:57:45

标签: php regex preg-match stripos

我正在循环一个包含行的txt文件,例如:

asdasdasd
lorem ipsum
lorem 12345-1
more lorem ipsum bacon

从此我需要知道该行何时找到文字 12345-1

Lorem in the beging是相对的。

我可以使用像

这样的stripos吗?
if (stripos('/^[1-9]{0,5}$-1/', $line) !== false)

我不知道正确的正则表达式。当然12345可以是什么,但它总是5位数,以-1

结束

1 个答案:

答案 0 :(得分:2)

要查找跟随-1的5位数字块,您可以使用

/\b[0-9]{5}-1\b/

或者,如果字边界(\b)过于严格,请使用外观:

/(?<!\d)\d{5}-1(?!\d)/

请参阅regex demo

preg_match

一起使用
if (preg_match('/\b[0-9]{5}-1\b/', $line))
{
     echo "Found!";
}

模式详情

  • \b - 一个前导词边界(或(?<!\d) - 如果在当前位置之前有一个数字,则使正则表达式失败,这是一个负面的后视图)
  • [0-9]{5} - 5位数
  • -1 - 文字字符序列-1
  • \b - 一个尾随字边界(或(?!\d) - 如果当前位置后面有一个数字,则正则表达式会导致正则表达式失败)