使用java的正则表达式需要在结果的开头添加字符串

ubbxdtey  于 2021-06-24  发布在  Pig
关注(0)|答案(2)|浏览(249)

我需要在结果的开头使用regex添加字符串。我的工作正则表达式是:

<img id="main-image" src="(.*?)"

结果是:

/images/product/400x400/662/662544_400x400.jpg

我想补充一下www.xyz.com 在结果的开头使用正则表达式,以便实际结果如下所示。

www.xyz.com/images/product/400x400/662/662544_400x400.jpg

为了解析regex,我使用了javaudf和pig
有没有办法,请告知。

l3zydbqr

l3zydbqr1#

这取决于语言。在perl中,您需要一个替换。我在您的代码中看到了pcre惰性量词,因此可能是perl:

s/<img id="main-image" src="(.*?)"/www.xyz.com$1/;
6gpjuf90

6gpjuf902#

如果您使用的是pig,那么就没有必要将替换合并到regex中。你也不需要写你自己的自定义项,如果你正在做的话。使用内置函数 REGEX_EXTRACT 以及 CONCAT :

DESCRIBE A;
A: {tag: chararray}

DUMP A;
(<img id="main-image" src="/images/product/400x400/662/662544_400x400.jpg">)

B = FOREACH A GENERATE CONCAT('www.xyz.com', REGEX_EXTRACT(tag, '<img id="main-image" src="(.*?)"', 1));

DUMP B;
(www.xyz.com/images/product/400x400/662/662544_400x400.jpg)

相关问题