サイトのほぼすべてを見ようとしたのですが、答えを見つけることができなかったので、私の質問がまだ他の誰かによって提起されていないことを願っています.
私の問題は次のとおりです。文字列内の1つまたは別のパターンのすべての出現位置を検出する必要があるPERLスクリプトを作成しています。
例えば:
$string = "betaalphabetabeta";
$pattern = "beta|alpha";
この場合、スクリプトで 4 つの一致を返すようにします。
これは、次のような方法で match 演算子を使用することで簡単に実現できると考えました。
$string =~ /beta|alpha/g;
ただし、私の 2 つのパターン (「アルファ」、「ベータ」) は部分的に重複しているため、投稿したばかりのコードは、最初のパターンが 2 番目のパターンと重複する場合はスキップします。
たとえば、次のような文字列がある場合:
$string = "betalphabetabeta";
4 ではなく 3 つの一致のみを返します。
?= 演算子を使って何かしようとしましたが、正しい方法で OR 演算子と組み合わせることができません...
誰にも解決策はありますか?ご協力いただきありがとうございます!