我正在循环使用包含行的txt文件,例如:
asdasdasd
lorem ipsum
lorem 12345-1
more lorem ipsum bacon
由此我需要知道该行何时找到文本 12345-1
乞讨中的洛雷姆是相对的。
我可以使用这样的条带吗
if (stripos('/^[1-9]{0,5}$-1/', $line) !== false)
我不知道正确的正则表达式。当然,12345 可以是任何东西,但它总是 5 位数字并以 -1 结尾
要找到一个 5 位数字的块,后跟 -1
,您可以使用
/b[0-9]{5}-1b/
或者,如果单词边界 ( b
) 限制性太强,请使用环顾四周:
/(?<!d)d{5}-1(?!d)/
查看正则表达式演示
与preg_match
一起使用:
if (preg_match('/b[0-9]{5}-1b/', $line))
{
echo "Found!";
}
图案详情:
-
b
- 一个前导词边界(或(?<!d)
- 如果当前位置之前有一个数字,则使正则表达式失败的负面外观) -
[0-9]{5}
- 5 位数字 -
-1
- 文字字符序列-1
-
b
- 尾随单词边界(或(?!d)
- 如果当前位置后面有一个数字,则使正则表达式失败的负前瞻)