私は、スプレッドシートにこのようなエントリで始まる:ColdFusionの正規表現-INGのロジックが妙に
お知らせ許可日後に長い一つの異なるサイズのダッシュを..私が正しいならばChr(8211)。
私は、クエリにスプレッドシートを回す:
私は、セルの値と、それのうち正規表現最初のビットを取得します。 (正規表現パターンが少しくらいのようだが、それは動作します)
//i make a new query and set one cell
querysetcell(newquery,"permitDateHeader",rereplace(cellWithPermitDate,
"^[(\W)]*(\w)*(\s)*(\w)*(\s)*(\w)*(:| -| –)+","","all"), insertRow);
しかし、私はまだこれが残っています:正規表現は、ちょうど2つの小さなダッシュで建設タイプに取り組ん
お知らせ。
だから私は(この他のものがコントローラで実行されていた)テストページの.CFMを作成
number = "Permit Number: 2016-1";
date = "- Permit Date – January 13, 2016";
reformednumber = rereplace(number,"^[(\W)]*(\w)*(\s)*(\w)*(\s)*(\w)*(:| -| –)+","","all");
reformeddate = rereplace(date,"^[(\W)]*(\w)*(\s)*(\w)*(\s)*(\w)*(:| -| –)+","","all");
writeDump(reformednumber);
writeDump(reformeddate);
そして、これがダンプされているものです。
許可日が正常に解析されました。今度は、コントローラではなく.cfmページで、クエリに入れます。それが私が見る唯一の違いです。同じ正規表現。
どうしてですか?
可能な解決策は正規表現を変更することです。私はドル記号のような\ Wの範囲に該当する値を拾いたくはありませんでした。
注このがを再作成することができないならば、それはあまりにも「アプリケーション固有の」フォーラムに残されるエラーのかもしれません。
パターンの最初の出現のみを破棄したいので、 '' rereplace''の '' all "'パラメータを削除したいかもしれません。 – Alex
長いハイフンがchar(8211)だと思うのなら、正規表現でそれを考慮しないのはなぜですか?ちなみに、ColdFusionのasc()関数は、その文字が実際に何であるかを示します。 –
@DanBracuk あなたが正しいですが、私はそれを試して、出力にダッシュの代わりに@%〜またはいくつかの奇妙な文字が残っていました。あまりにも多くを演奏していませんでした。 –