我有以下的正則表達式:不允許特定特殊字符的正則表達式
[\u00BF-\u1FFF\u2C00-\uD7FF\w \""",.()/-<br\s/?>]+$
它允許任何語言的字符,除了特殊字符,如#,*
等(雖然有些特殊字符被允許,你可以在正則表達式上面看到)。
但是,我的正則表達式還允許不需要的特殊字符,如<,>,&
。
我該如何修改這個正則表達式來禁止輸入字符串中的這些字符?
我有以下的正則表達式:不允許特定特殊字符的正則表達式
[\u00BF-\u1FFF\u2C00-\uD7FF\w \""",.()/-<br\s/?>]+$
它允許任何語言的字符,除了特殊字符,如#,*
等(雖然有些特殊字符被允許,你可以在正則表達式上面看到)。
但是,我的正則表達式還允許不需要的特殊字符,如<,>,&
。
我該如何修改這個正則表達式來禁止輸入字符串中的這些字符?
您需要使用交替對一些正則表達式部分(<br\s/?>
被視爲獨立的字符<
,b
等),並/-<
創造了一系列接受許多比你更光想:
因此,我建議使用
^(?:[\u00BF-\u1FFF\u2C00-\uD7FF\w ",.()/:;-]|"|<br\s?/?>)+$
在C#中,使用逐字字符串:
@"^(?:[\u00BF-\u1FFF\u2C00-\uD7FF\w "",.()/:;-]|"|<br\s?/?>)+$"
我假設你需要匹配任何3 「實體」 或它們的組合:
[\u00BF-\u1FFF\u2C00-\uD7FF\w ",.()/-]
- 人物\u00BF-\u1FFF
和\u2C00-\uD7FF
,\w
,空間的範圍,雙引號,,
,.
,(
,)
, /
和文字連字符"
- 一個文字"
<br\s?/?>
- <br>
標籤(可以匹配<br>
,<br/>
和<br />
)。^
and $
將在開始和結束時強制匹配。
感謝您的回答...我認爲這應該工作...我正在測試它.....;) –
我認爲你也可以從'&'在'"'中刪除'&','&'不是正則表達式的特殊字符。 –
是的..它的工作,但正則表達式中間的'''是打破正則表達式我應該如何解決這個問題,我想允許':'和';' –
在接受字符的列表中有這些字符。如何不讓他們在那裏?看起來你可能會誤解你的正則表達式實際上意味着在那裏用「"」來表示,並且看起來像一個br標籤。 – Chris
@ Chris..yes ...這些字符來自我在正則表達式中指定的範圍,但這是問題,我應該如何修改正則表達式來排除這些字符? –
請查看https://msdn.microsoft.com/en-us/library/az24scfc(v=vs.110).aspx#character_classes以獲取有關如何使用字符類構造的信息。它匹配任何字符,所以一個更好的字符會是'[\ u00BF- \ u1FFF \ u2C00- \ uD7FF \ w \「;」「,。()/ - br \ s /?] + $'這是相同的作爲你的,但刪除'<', '>'和'&'。我沒有進一步研究爲什麼它可能無法工作,所以我不保證這會解決您的問題。 – Chris