これは多かれ少なかれ2つの部分からなる質問だと思いますが、最初に基本的なことを説明します。preg_match_allを使用して、{}でブックエンドの文字列の変数を調べるPHPを作成しています。次に、返された各文字列を繰り返し処理し、見つかった文字列をMySQLクエリのデータに置き換えます。
最初の質問はこれです:PCRE式の詳細を実際に学ぶための良いサイトはありますか?私はGoogleで多くの検索を行いましたが、これまでに見つけた中で最高のものはhttp://www.regular-expressions.info/です。私の意見では、そこにある情報はよく整理されておらず、複雑な正規表現を書く必要があるときに助けを求めてハングアップしたくないので、いくつかのサイト(またはいくつかの本!)を教えてくださいそれは私が将来あなたたちを煩わせる必要がないのを助けるでしょう。
2番目の質問はこれです:私はこの正規表現を持っています
"/{.*(_){1}(.*(_){1}[a-z]{1}|.*)}/"
などのインスタンスをキャッチするために必要{first_name}, {last_name}, {email}
です。この正規表現には3つの問題があります。
1つ目は、「{first_name} {last_name}
」を2つの文字列として表示する必要があるのに、1つの文字列として表示することです。空間の存在を確認し、空間を爆発させることで、これを解決することができました。散らかっていますが、動作します。
2番目の問題は、キャプチャされた文字列の一部として句読点が含まれていることです。したがって、「{first_name} {last_name}
、」がある場合は、文字列の一部としてコンマが返されます。preg_replaceを使用してピリオド、コンマ、セミコロンを削除するだけで、これを部分的に解決することができました。これらの句読点では機能しますが、私のロジックでは感嘆符、疑問符、その他すべてを処理できません。
この正規表現で私が抱えている3番目の問題は、{email}のインスタンスがまったく表示されないことです。
さて、できれば、喜んで、そしてこの問題の解決策を私に手渡す時間があれば、それが私の差し迫った問題を解決するので、ありがとうございます。ただし、これができる場合でも、参考資料として優れたWebサイトを提供するlmgftyや、このテーマに関する優れた教育を提供する1冊または2冊の本を提供してください。お金が逼迫しているのでサイトが望ましいですが、本が解決策であれば、私はお金を見つけます(私の地元の図書館システムがその量を調達できないと仮定して)。