如何找到模式的后半部分?

时间:2010-01-11 06:04:05

标签: java regex

我正在尝试找到以下模板的后半部分模式:

foo/BAR 

'BAR'是我想要检索的那个。我尝试过类似的东西:

\b(foo)/([a-zA-Z]+)

这很好用,但这也匹配http://foo/BAR - 我不想要。

我也试过

\\s(foo)/([a-zA-Z]+)

但是当行以foo / BAR开头时,这不匹配。 (我正在使用java.util.regex)

4 个答案:

答案 0 :(得分:4)

(^|\s)foo/([a-zA-Z]+)

答案 1 :(得分:3)

如果您定义一个完整的“foo / BAR”标记,因为前面和后面都有空格(或行的开头/结尾)

即。它会在

中找到“abc”,“XyZ”和“def”
"foo/abc 123 hhh foo/XyZ http://foo/BAR foo foo/ foo/ghi% foo/def"

然后你想要

(?:^|\s)foo/([a-zA-Z]+)(?:$|\s)

答案 2 :(得分:1)

怎么样

^(foo)/([a-zA-Z]+)

(?<!http://)(foo)/([a-zA-Z]+)

答案 3 :(得分:1)

\ b是单词边界,^是行标记的开头

^foo/(\w+)