我正在循环一个包含以下行的 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 结尾
我正在循环一个包含以下行的 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 结尾
要查找后跟 的 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)
- 如果当前位置后面有一个数字,则负前瞻使正则表达式失败)