2

正規表現に問題があります。
私はトークンを扱っており、次のようなテキストを解析する必要があります。

Just some random text
#IT=AB|First statement# #xxxx=xxx|First statement|Second statement#
More text

preg_replace_callback最初の式が true であるかどうかに応じて、最初のステートメントまたは 2 番目のステートメントを使用する必要があるため、使用します。それは一種のIF...ELSE...声明です。

私が期待するのは、次のような2つの要素です。

#IT=AB|First statement# 
#xxxx=xxx|First statement|Second statement#

そのため、コールバック関数内でそれらの操作を開始できます。
この正規表現を試してみまし/#.*#/たが、文字列全体を取得しましたが、要素に解析されていません。

どうすればそれを達成できますか?申し訳ありませんが、正規表現は私のものではありません:(

4

1 に答える 1

4

量指定子*はデフォルトで貪欲です。したがって、 a.*は可能な限り一致し、結果として a にも一致し#ます。これを修正するには、後に*a を追加して非貪欲にすることができます?。これで、a.*?はできる限り少なくしようとします。

/#.*?#/

または、2 つの # の間の # 以外の文字のみを探すことができます。

/#[^#]*#/
于 2012-05-03T10:32:09.750 に答える