0

我正在尝试将字符串与 java 正则表达式匹配,但我无法成功。我对java很陌生,我的大部分经验都是基于linux的正则表达式,我没有成功。有人能帮我吗?

以下是我使用的代码。

正则表达式是 -

//vod//final\_\d{0,99}.\d{0,99}\\-Frag\d{0,99}

我要匹配的线是

/vod/final_1.3Seg1-Frag1

我希望 1.3、1 和 1 被通配符。

有人请帮我... :(

4

4 回答 4

2

你错过了这个Seg1部分。此外,您正在转义不需要转义的字符。试试这个正则表达式:/vod/final_\\d+\\.\\d+Seg1-Frag\\d+

于 2012-08-09T14:37:56.570 回答
2

这应该有效:

Pattern p = Pattern.compile( "/vod/final_\\d+\\.\\d+Seg\\d+-Frag\\d+" );

注意:为了保护特殊字符,您可以使用Pattern.quote()

当遇到这样的问题时,从一个简单的文本和模式开始,然后从那里开始构建。即首先尝试匹配/,然后/vod/,然后/vod/final_1,等等。

于 2012-08-09T14:35:46.907 回答
0

你逃避太多了。不要逃避 /,_,-。

就像是:

/vod/final_\d{0,99}.\d{0,99}-Frag\d{0,99}
于 2012-08-09T14:33:28.300 回答
0

这行得通吗?

/\/vod\/final\_\d{0,99}.\d{0,99}Seg\d-Frag\d{0,99}

另外,这是我用来编辑您上面提供的正则表达式的内容:http ://rubular.com/

它说它适用于 ruby​​,但它也提到它也适用于 java。

于 2012-08-09T14:39:21.023 回答