正規表現に問題があります。本当の問題はそれを完全に理解したことがない.
$regexp = "/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/";
次に、その行全体が何をするかについておしゃべりします。むしろ、各式が何をするかです。preg_replace と regex チュートリアルの多くの異なるバージョンをグーグル検索してみましたが、\b[^>]* のようなものが何をするかを既に知っていると仮定しているようです。
セカンダリ。私がこれをやろうとしている理由:私は向きを変えたい
<span style="color: #000000">*ANY NUMBER*</span>
の中へ
<span style="color: #0000ff">*ANY NUMBER*</span>
私がすでに試したいくつかのバリエーションは、スクリプトがうまくいかないものもありました。
$data = preg_replace("/<span style=\"color: #000000\">([0-9])</span>/", "<span style=\"color: #FFCC00\">$1</span>", $data);//just tried to match atleast 0-9
$data = preg_replace("/<span style=\"color: #000000\"\b[^>]*>(.*?)</span>/", "<span style=\"color: #FFCC00\">$1</span>", $data);
$data = preg_replace("/<span style=\"color: #000000\"\b[^>]*>([0-9])</span>/", "<span style=\"color: #FFCC00\">$1</span>", $data);
この特定の問題に対する答えは、私にとってサイトほど重要ではないので、それを確認してください。さまざまなサイトをたくさん試しましたが、私の理解を超えていないことは確かです。すべての悪いチュートリアル/サンプルファームに適したものを見つけることができません. w3 と phpdotnet の通常のフォールバックには、今回は必要なものがありません。
EDIT1同様の答えを探してここにたどり着いた人のために:
$data = preg_replace("/<span style=\"color: #000000\">([0-9]{1,})<\/span>/", "<span style=\"color: #FFCC00\">$1</span>", $data);
必要なことをしました。悲しいことに、それは私が試した最初のことの 1 つでしたが、代わりに </span> を入れていなかったため、機能していませんでした。数値 (任意の整数 0-9 を [0-9] で少なくとも 1 回、{1} で可能な限り何度でも照合するように指示しても、目的に適合します)
ROY Finley 投稿: http://www.macronimous.com/resources/writing_regular_expression_with_php.asp 式の定義のリストと以下の良い例のワークアップがある良いサイトです。
また、regular-expressions.info/tutorial.html が数回投稿されました。よりゆっくりとした詳細なウォークスルーですが、私のように立ち往生している場合は問題ありません。
regex101 とパーサーについては、後で試してみたいと思います。
EDIT2 DWright は、「Mastering Regular Expressions」の下に本のリンクを投稿しました。正規表現を見て、文字の畳み込みの頭または尾を作成できない場合は、それを選択する価値があります。約半分を読むのに約1時間半かかりましたが、Googleに費やす時間とそれを回避するために使用される混乱した回避策に比べれば、それは時間ではありません.
また、以下にリンクされている html 解析は、この特定の問題に適しています。