java - 仅在正则表达式中捕获外括号作为组

标签 java regex

<分区>

我想使用正则表达式从 java 中的字符串中捕获日期和其他一些信息。

我将我的模式分组如下,

"( ( date_variation_1 | date_variation_2) (some_other_info) ) "

现在,我想像这样提取匹配的字符串,
group0 - 整场比赛
group1 - 日期
group2 - 一些其他信息

我的问题是我需要在 date_variation_1、date_variation_2 和 some_other_info 内部使用括号,这些括号也将被视为组分隔符。

是否有任何简单的解决方法,即定义一些其他特殊章程作为外部组分隔符,而不是括号?

date_variation_1:

"(((?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday|Tues|Thur|Thurs|Sun|Mon|Tue|Wed|Thu|Fri|Sat))" // Day Of Week 1
                        + "(\\s+)"  // White Space 1
                        + "((?:[0]?[1-9]|[1][012])[-:\\/.](?:(?:[0-2]?\\d{1})|(?:[3][01]{1}))[-:\\/.](?:(?:\\d{1}\\d{1})))(?![\\d])" // MMDDYY 1
                        + "(\\s+)" // White Space 2
                        + "((?:(?:[0-1][0-9])|(?:[2][0-3])|(?:[0-9])):(?:[0-5][0-9])(?::[0-5][0-9])?(?:\\s?(?:am|AM|pm|PM))?))"; // HourMinuteSec 1

最佳答案

您可以使用 (?:yourGroupHere) 来定义非捕获组。

关于java - 仅在正则表达式中捕获外括号作为组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6015838/

相关文章:

带连字符的 Java 简单正则表达式

java - 存储 Java UI 应用程序配置/设置的最佳实践

java - Java中傅里叶变换的动态计算

java - 为什么 Java 有中央 API 文档,而 C++ 没有?

javascript - 用于电子邮件匹配的正则表达式

php - 正则表达式 int 或 float

Python:帮助制作正则表达式

java - 从 Calendar 到 GregorianCalendar 无需转换

java - 如何将工具提示添加到 JavaFX 8 中的 TableView 标题单元格

php - 尝试将正则表达式匹配传递给函数时出错