我正在尝试使用ack解析一堆PHP代码。我对正则表达式缺乏经验,并试图弄清楚为什么我当前使用的东西不会像我期望的那样工作。
我试图找到PHP文件中与模式匹配的所有行:
字符串“SKU”,后跟任意数量的任何字符,后跟实际的SKU(不确定长度的数字序列)。
我的正则表达式目前是:
SKU.*[0-9]*
但是这匹配了许多字符串,这些字符串并不适合我正在寻找的模式,例如
SKUs</h3>
和SKU',
我也尝试过:
SKU(.*)([0-9]*)
无济于事。
那里的任何大师都有一些见解?提前谢谢。
答案 0 :(得分:2)
所有(几乎)正确:
SKU.*[0-9]+
如果您希望在重新结束时至少有一个数字,则必须使用+代替*。
说实话并不完全清楚任何字符是什么意思。如果你真的是指任何角色,那么你必须使用.*
,但如果没有,你必须更具体地说出你想要找到的东西。
此外,您可能需要非贪婪的搜索模式:
SKU.*?[0-9]+
这意味着:一旦面对第一个号码就停止。