我正在雅虎上工作!管道。我有一个RegExp来匹配一个URL。现在,我需要匹配不匹配的以便删除它,以便只有我的URL。我的RegExp是:
[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+
如何反转匹配? (必须通过另一个RegExp完成,YPipes不支持任何其他方式。)
编辑:为了澄清:我有一个字符串,需要获取其中的第一个URL。这就是为什么没有其他工作......
答案 0 :(得分:0)
Yahoo Pipes支持正则表达式替换(使用String Regex模块)。
然后匹配您想要保留的部分并将其捕获到一个组中。你已经这样做了,虽然你的正则表达式本身有些错误,但这里至少有一个明显的错误得到纠正:
([A-Za-z]+://[A-Za-z0-9_-]+\.[A-Za-z0-9_:%&?/.=-]+) ^ ^ ^ | | | | | + lone dashes always at the end of the character class! | +--- forward slashes do not need to be escaped +--- capturing group 1, contents later accessible through $1
然后用该组的内容替换整个字符串。只需将$1
放入“替换为”字段即可。实际上,这会删除您不想保留的所有内容。
由于我不确定你的正则表达式应该做什么,我不能给你一个更好的版本。
作为一般性提示:正则表达式始终只是关于匹配的东西,而且从来没有关于不匹配(即“排除”)的东西。有正则表达式具有排除效果,但即使他们通过匹配实现它。