0

我正在尝试创建一个合适的正则表达式来使用 java.util.regex.Pattern

我正在使用下面显示的正则表达式来匹配字符串,如下所示:feed_user_at_gmail_dot_com_testfile

final static Pattern PATTERN1 = Pattern.compile("feed_(.*)_([^_]*)");

这按预期工作。但是,我需要创建另一个模式来匹配字符串,如下所示:feed_user_at_gmail_dot_com_testfile_ts_20120413_dot_175531_dot_463

不同之处在于第二个字符串是第一个字符串的时间戳版本。这两个字符串是我数据库中文件名的示例,我需要分别识别它们。如上所示,时间戳版本_ts_后跟 DATE。DATE 中的所有点都更改为_dot_

谢谢,索尼

4

1 回答 1

1

这个怎么样:

"feed_(.*)_([^_]*)_ts_[1-9]+(_dot_[1-9]+)*"

或者更好的是,

"feed_(.*)_([^_]*)_ts_[1-9]+(_dot_[1-9]+){2}"

如果日期总是正好有两个点。

于 2012-04-14T05:02:51.240 回答