正则表达式匹配句子中的多个条件

时间:2016-11-21 06:24:42

标签: regex

我需要一个正则表达式来匹配句子中的${xyz}。我试过这个表达式\$\{[^\s]+\}它对我有用。但我有更多场景,比如匹配的单词($ {xyz})不应该包含空格,它不应该像${xyz$xyz}以及${xy z}一样。

接受

  • 嗨$ {xyz},感谢您的光临。

不接受

  • 嗨$ {xy z},感谢您的光临。

  • 嗨$ {xyz},感谢您的光临。

  • 嗨$ {xyz,感谢您的光临。

  • Hi $ xyz},感谢您的光临。

  • 您好{xyz},感谢您的光临。

注意:它应该匹配整个句子。

1 个答案:

答案 0 :(得分:1)

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

上述正则表达式的组匹配将为您提供句子,没有任何前导空格字符。

我通过检查以字符结尾的字符串来匹配一个句子"。","!"或"?"。

您可以查看正则表达式here

的含义