java - 集合表示法的特定 Java 正则表达式

标签 java regex set notation

我正在尝试编写一个正则表达式来检查字符串是否构成一组整数

ex: {1, 23, -501, 52, 2387329, 0}

到目前为止我已经得到:

Pattern p = [({(([0-9]+,)*[0-9]+)})]

但它似乎不起作用...任何人都可以帮助我吗?

谢谢!

最佳答案

Pattern.compile("\\{\\s*(?:\\d+(?:\\s*,\\s*\\d+\\s*)*)?\\}")

匹配包围零个或多个逗号分隔的非负十进制整数的大括号。

\\s 匹配任何空格字符。 (?:...) 仅用于分组,大括号之间的内容实际上是可选的(小数位后跟(任意数量的逗号,然后是十进制数))。

我不知道你用的是什么符号

[({(([0-9]+,)*[0-9]+)})]

但它肯定不会匹配空集,也不会匹配逗号后带有空格的任何内容。

关于java - 集合表示法的特定 Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15594856/

相关文章:

java - 不同线程中的 2 个独立执行程序服务生成的线程是否保证不同?

set - 计算一定数量的刻度的平均值

java - 为什么java正则表达式失败

java-8 - Set<LocalDate> 包含 LocalDate 最佳实践

Java构造函数并在运行时修改对象属性

java - 从 log4j 或 logback 中调用实例继承附加程序

java - 为什么我在 Java 应用程序中看到 "strange"滚动条?

java - Android 中来自 XML 的对话框的按钮单击事件

java - 用java中的空格替换json字符串中的特殊字符(不可打印的字符)

regex - 在 Google Analytics(分析)目标漏斗步骤中使用正则表达式