さて、私はまだ正規表現にかなり慣れていないので、誰かがここで私を助けてくれることを願っています.
Web サイトでは、特定のフィールドと値をテンプレートに配置するための単純なマークアップ言語があります。
次のいずれかのようになります。
[%FieldName]
[%FieldName.Value]
[%FieldName.Text]
[%FieldName.Value_YesNo]
問題なく交換できます。しかし、特定のフィールドに値がない場合、画像が壊れてしまい、実際にはどこにも行かないリンクが表示されます。次のようなものでそれを達成しようとしました:
[? <a href="[%FieldName.Value]">[%FieldName.Value]</a> ?]
そして、Regex.Replace()
I を使用すると、その行全体を削除できるはずです。しかし、それはそれらすべてを削除して終了しました。
[? <a href="[%FieldName.Value]">[%FieldName.Value]</a> ?] [? <a href="[%Field2Name.Value]">[%Field2Name.Value]</a> ?]
[[\[\?.*\[%FieldName.*\].*\?\]]+]
私が試したことに似たものです。
FieldName
また、単語内の文字だけでなく、単語全体に一致するように、括弧、引用符などで囲みました。
何か案は?
\b
また、さまざまな方法でフラグを試したことにも注意してください。
フィールド情報の入力を処理する次のコードが既にあります。
listingTemplate = listingTemplate.Replace("[%" + df.FieldName + "]", df.FieldText + ": " + df.Value.Replace("|", ", "));
listingTemplate = listingTemplate.Replace("[%" + df.FieldName + ".Text]", df.FieldText);
if (df.FieldType == FieldTypes.CheckboxSingle && df.Value.Length > 0)
listingTemplate = listingTemplate.Replace("[%" + df.FieldName + ".Value]", df.FieldText);
else if (df.FieldType != FieldTypes.CheckboxSingle)
listingTemplate = listingTemplate.Replace("[%" + df.FieldName + ".Value]", df.Value.Replace("|", ", ").Nl2Br());
listingTemplate = listingTemplate.Replace("[%" + df.FieldName + ".Value_YesNo]", (df.Value.Length > 0 ? "Yes" : "No"));
これは期待どおりにFacebookURL
機能しますが、値がない場合でも表示されます。
<div class="dimage"><img src="/uploads/[%Logo.Value]" /></div>
<h5>[%Name]</h5>
<div class="item">[%Address.Value]</div>
<div class="item">[%Telephone]</div>
<div class="items"><span class="item d-btn"><a href="mailto:[%Email.Value]">E-Mail</a></span> <span class="item d-btn"><a href="[%URL.Value]">Website</a></span> <span class="item d-btn"><a href="[%Video.Value]">Watch Video</a></span> <span class="item d-btn"><a href="[%BrochureURL.Value]">Brochure</a></span> <span class="item d-btn"><a href="[%ReprintURL]">Reprint</a></span> <span class="item d-btn"><a href="[%FacebookURL.Value]">Facebook</a></span> <span class="item d-btn"><a href="[%TwitterURL.Value]">Twitter</a></span></div>
<div class="item">[%Waterway]</div>
<div class="notes">[%DateAdded]</div>
これは私が問題に遭遇している場所です:
<div class="head">
<div class="dimage">[?<img src="/uploads/[%Logo.Value]" />?]</div>
<h5>[%Name]</h5>
</div>
[? <div class="item">[%Address.Value]</div> ?]
[? <div class="item">[%Telephone]</div> ?]
<div class="items">[?<span class="item d-btn"><a href="mailto:[%Email.Value]">E-Mail</a></span>?] [?<span class="item d-btn"><a href="[%URL.Value]">Website</a></span>?] [?<span class="item d-btn"><a href="[%Video.Value]">Watch Video</a></span>?] [?<span class="item d-btn"><a href="[%BrochureURL.Value]">Brochure</a></span>?] [?<span class="item d-btn"><a href="[%ReprintURL.Value]">Reprint</a></span>?] [?<span class="item d-btn"><a href="[%FacebookURL.Value]">Facebook</a></span>?] [?<span class="item d-btn"><a href="[%TwitterURL.Value]">Twitter</a></span>?]</div>
<div class="notes">[%DateAdded]</div>
FacebookURL
が空の値の場合、その[? ?]
フィールドを完全に削除できるようにする必要があります。