{(1,2),(3,4)};
如何检查像上面这样的输入是两对的集合(在“{”和“}”之间)(“(”和“)”之间的整数值。如上所述,必须使用三个逗号.我的猜测是,也许在字符数组上进行某种搜索(不知道是哪种)来获取正确的符号是最好的,但是有没有更快的方法?
请记住,整数值可能比 1、2、3 等大得多,也可能是负值。
最佳答案
如果这不是性能关键,您可以使用快速但肮脏的正则表达式。
-?\d+
匹配任意长度的数字序列(即 1 个或多个数字),前面可以选择负号- 大括号
{ }
和圆括号( )
是正则表达式中的特殊字符,因此必须对它们进行转义(\{
等) - 我的假设是不允许有空格。如果情况并非如此,您将需要修改正则表达式,以在任何允许的位置包含可选的空白
\s*
(零个或多个空白字符)。
最终的正则表达式应如下所示:
\{\(-?\d+,-?\d+\),\(-?\d+,-?\d+\)\}
如果您还需要捕获任何数字值,可以添加 capturing parentheses .
关于java - 对于这样的输入,简单但有效的括号检查器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9253084/