2017-07-22 101 views
1

我想爲我的一個項目做一個微調,我有一個文本區域,如果大括號關閉,文本沒有,我想驗證文本尖括號。MVC C#單個正則表達式來驗證大括號和尖括號

到目前爲止,我可以檢查是否有文字與目前[^<>]*

任何尖括號我有這個字符串{hello|hi|hey} arbaz, {how are you?|how you doing} ,我想,如果大括號正確關閉驗證。例如string不能

{{hello|hi|hey}} arbaz, {{how are you?|how you doing}}

OR

{{hello|hi|hey} arbaz, {how are you?|how you doing}}

它不能在大括號包裹物。

\{{?>\{{?<c>}|[^{}]+|\}{?<-c>}}*{?{c}{?!}}\}是我的正則表達式。

我需要一個正則表達式,它可以用大括號進行驗證,並且不允許使用尖括號。請原諒我的糟糕英語。由於

+0

我能得到你的權利,你想匹配的是包含比'{'和'}'或'{...}'子,沒有這些也可以匹配''<' and '>其他任何字符的字符串?嘗試'^(?:[^ <> {}] | {[^ <> {}] *})* $' –

+0

請參閱[這裏](http://regexstorm.net/tester?P =%5E%28%3F%3A%5B%5E%3C%3E%7B%7D%5D%7C%7B%5B%5E%3C%3E%7B%7D%5D *%7D%29 *%24&I =%7bhello%7chi%7chey%7D + arbaz%2C +%7bhow +爲+你%3F%7chow +你+做%7D%0D%0A%7B%3chello%3E%7chi%7chey%7D + arbaz%2C +% 7bhow +是+您%3F%7chow +你+做%7D%0D%0A%7B%7bhello%7chi%7chey%7D%7D + arbaz%2C +%7B%7bhow +是+您%3F%7chow +你+做%7cwhat%-27 +向上%7D%7D%0D%0A%7B%7bhello%7chi%7chey%7D + arbaz%2C +%7bhow +是+您%3F%7chow +你+做%7cwhat%-27 +向上% 7d%7d%0d%0a&o = m) –

+0

@WiktorStribiżew非常感謝您的評論,它的工作方式就像我想要花括號一樣。你可以請添加檢查是否存在HTML標籤,例如'<>'謝謝 –

回答

2

要匹配包含除{} OR {...}子其他任何字符的字符串,並沒有這些也可以搭配<>字符。

您可以使用

^(?:[^<>{}]|{[^<>{}]*})*$ 

regex demo

它匹配:

  • ^ - 串
  • (?:開始 - 非捕獲組開始
    • [^<>{}] - 任何字符但<>{}
    • | - 或
    • { - 一個{
    • [^<>{}]* - 比<>{}
    • } 0+其它字符 - a } char
  • )* - 重複組模式0+次
  • $ - 字符串結尾。
+0

非常感謝你的快速幫助。上帝保佑。 –

+1

如果'<...>'不在'{...}'之內,那麼它應該給出一個錯誤。 –

+0

@ArbazAbid目前,該模式不允許在任何地方使用'<' and '>'。 –