2016-11-21 72 views
-1

我需要一個正則表達式來匹配${xyz}的句子。我試過這個表達式\$\{[^\s]+\}它爲我工作。但是我有更多的場景,比如匹配的單詞($ {xyz})不應該有空格,它不應該像這樣${xyz$xyz}${xy z}正則表達式匹配句子中的多重條件

接受

  • 嗨$ {} xyz的,感謝您的光臨。

不接受

  • 嗨$ {XY Z},感謝您的光臨。

  • 嗨$ {xyz},謝謝您的光臨。

  • 嗨$ {xyz,感謝您的光臨。

  • 嗨$ xyz},謝謝您的光臨。

  • 嗨{xyz},謝謝您的光臨。

注意:它應該匹配整個句子。

+0

張貼在您的正則表達式失敗的輸入..嘗試這個,'\ $ \ {[^ \ S {}] + \}' –

+0

你的條件已經匹配與給定的正則表達式。請登錄www.regex101.com –

+0

它應該匹配整個句子。但它只匹配 –

回答

1
[\s]*([^.!?]*\$\{[^\s]+\}[^.!?]*[.!?]) 

上述正則表達式的組匹配會給你一個沒有任何前導空格字符的句子。

我已經通過檢查以「。」,「!」結尾的字符串來匹配一個句子。要麼 」?」。

您可以檢查正則表達式的含義here

+0

它的匹配沒有。你可以檢查 –

+0

你如何檢查? –

+0

它的工作,但如果我給像「Hi $ {xyz},感謝您的訪問Hi $ {xy z},感謝您的訪問Hi $ {xyz},感謝您的訪問Hi $ {xyz,感謝您的訪問Hi $ xyz},感謝您的訪問嗨{xyz},感謝您的訪問「它符合一切。 –