3

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

asdasdasd
lorem ipsum
lorem 12345-1
more lorem ipsum bacon

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

Lorem 在开始时是不相关的。

我可以使用像这样的条纹吗

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

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

4

1 回答 1

2

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

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

或者,如果单词边界 ( \b) 过于严格,请使用环视:

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

查看正则表达式演示

使用它preg_match

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

图案细节

  • \b- 一个前导词边界(或(?<!\d)- 如果当前位置之前有一个数字,则使正则表达式失败的负向回溯)
  • [0-9]{5}- 5 位数
  • -1- 文字字符序列-1
  • \b- 尾随字边界(或(?!\d)- 如果当前位置后面有一个数字,则负前瞻使正则表达式失败)
于 2017-01-24T13:59:25.927 回答