2

ほぼ正常に機能する正規表現があります:)

/test[^test<]/

prep_replace()を使用していますが、文字列'test'の出現箇所を検出し、文字列が'test <'(すでに置き換えられていることを意味します)の1つのシナリオを除いて、testに置き換えます。

テストテキストは次のとおりです。「これはテストです。これはテストですか?いくつかのテストとテストですが、test<testowanie」

それは私にこの結果を与えます:「これはテストですこれはいくつかのテストとテストですがテスト<testwanie」

したがって、文字列'test <'は正しく除外されますが、他の一致がある場合は、'test'+1つの余分な文字が置き換えられます。

どんな助けでもいただければ幸いです。ありがとう。

4

1 に答える 1

2

角括弧は文字クラスを表し、^はその文字クラスの否定を表します。最終結果は、、、、、またはでtestはない任意の1つの文字が続くシーケンスに一致することです。test<

代わりにこれを使用してください: 、左山かっこが続かない/test(?!<)/シーケンスのすべてのオカレンスに一致します。test

于 2012-11-02T15:04:21.593 に答える