-3

ここで同様の質問を見たことがありますが、どれもこれに役立ったとは思いません。

古いバージョンの PHP、特に ereg 関数を使用していた人からサイトを継承しました。元の正規表現は次のとおりです。

$regex = "[ ]+[0-9]+) ( [a-zA-Z]+)[ ]+Crimson[ ]+([0-9]+)[ ]+[0-9]+[ ]+[0-9]+[ ]+[0-9]+[ ]+([0-9]+)[ ]+[0-9]+";

区切り文字で開始および終了する必要があることを読んだので、次のように更新しました。

$regex = "/[ ]+[0-9]+) (    [a-zA-Z]+)[ ]+Crimson[ ]+([0-9]+)[ ]+[0-9]+[ ]+[0-9]+[ ]+[0-9]+[ ]+([0-9]+)[ ]+[0-9]+/";

しかし、私はまだこのエラーが発生しています:

警告: preg_match(): コンパイルに失敗しました: オフセット 10 の括弧が一致しません

式に特殊文字が表示されないため、他に何をエスケープする必要があるかわかりません。何か案は?

4

2 に答える 2

2

正規表現の先頭に近づいています)が、それを開いていません。リテラルの場合は、その前にバックスラッシュを追加します。

/[ ]+[0-9]+)

/[ ]+[0-9]+\)

そうでない場合は、最初に開きます。

于 2013-10-22T18:16:31.290 に答える
1

10 の位置では、開始 ( ) なしで終了 ) があります

于 2013-10-22T18:16:59.687 に答える