0

我正在寻找正则表达式来匹配任何具有打开或关闭花括号的字符串。只有当括号内除了空格、制表符等 (\s) 之外还有另一个字符时,它才应该匹配 - 即使字符串中有另一个括号。

基本上,这是静态代码分析器的一部分,女巫应该检查括号是否在新的空白行(样式指南)。如果字符串中有任何其他字符,它应该匹配。

我得到了这个^[\S]*({|})[\S]*$。但它也匹配{,因为*. 我正在使用 C#。

例子:

匹配:{ lala, lala{, asdf{asdf,{}

不匹配:{, {, }, TAB { TAB,asdf

谢谢!

4

2 回答 2

0

这不是很好,但这可能有效:

^([\S]+[{}])|([\S]+[{}][\S]+)|([{}][\S]+)$

希望这可以帮助

于 2012-06-26T12:08:24.840 回答
0

正则表达式^(?=.*[{}])\S*$将匹配包含至少一个花括号的字符串,并且这样的字符串不会有任何空白字符。


更新:

根据您的评论,您可能正在寻找此正则表达式:.*{(?:\s*[^\s}]+}?|})

于 2012-06-26T12:10:24.793 回答