1

ackを使用して一連のPHPコードを解析しようとしています。私は正規表現にかなり不慣れで、現在使用しているものが期待どおりに機能しない理由を理解しようとしています。

次のパターンに一致するPHPファイルのすべての行を見つけようとしています。

文字列「SKU」、任意の文字数、実際のSKU(長さが不定の数列)。

私の正規表現は現在:

SKU.*[0-9]*

しかし、これは私が探しているパターンに実際には合わない多くの文字列と一致します。

SKUs</h3>SKU',

私も試しました:

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

無駄に。

そこにある教祖はいくつかの洞察を持っていますか?前もって感謝します。

4

1 に答える 1

2

すべて(ほぼ)正しい:

SKU.*[0-9]+

reの最後に少なくとも1つの数字が必要な場合は、*の代わりに+を使用する必要があります。

真実を言うと、それはあなたがどんなキャラクターで何を意味するのか完全には明確ではありません。本当に文字を意味する場合は、を使用する必要があります.*が、そうでない場合は、見つけたいものをより具体的に言う必要があります。

また、貪欲でない検索モードが必要になる可能性があります。

SKU.*?[0-9]+

つまり、最初の番号に直面したらすぐに停止します。

于 2012-06-19T19:20:10.923 に答える