1

我正在尝试使用ack解析一堆 PHP 代码。我对正则表达式非常缺乏经验,并试图弄清楚为什么我目前使用的不能按我预期的那样工作。

我正在尝试在 PHP 文件中查找与以下模式匹配的所有行:

字符串“SKU”,后跟任意数量的任意字符,后跟实际 SKU(长度不确定的数字序列)。

我的正则表达式目前是:

SKU.*[0-9]*

但这匹配了很多不适合我正在寻找的模式的字符串,例如

SKUs</h3>SKU',

我也试过:

SKU(.*)([0-9]*)

无济于事。

有大佬有见解吗?提前致谢。

4

1 回答 1

2

全部(几乎)正确:

SKU.*[0-9]+

如果要在 re 的末尾至少有一个数字,则必须使用 + 而不是 *。

说实话,不完全清楚你对任何字符的意思是什么。如果您真的指的是任何字符,那么您必须使用.*,但如果不是,您必须更具体地说明您想要查找的内容。

此外,您可能需要非贪婪的搜索模式:

SKU.*?[0-9]+

这意味着:一旦你遇到第一个数字就停下来。

于 2012-06-19T19:20:10.923 回答