我目前正在使用 Yahoo! 的管道。管道。我有一个正则表达式来匹配一个 URL。现在,我需要匹配不匹配的才能删除它,这样就只有我的 URL。我的正则表达式是:
[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+
如何反转匹配?(它必须通过另一个 RegExp 来完成,YPipes 不支持任何其他方式。)
编辑:澄清:我有一个字符串,需要在其中获取第一个 URL。这就是为什么其他方法都不起作用的原因……</p>
我目前正在使用 Yahoo! 的管道。管道。我有一个正则表达式来匹配一个 URL。现在,我需要匹配不匹配的才能删除它,这样就只有我的 URL。我的正则表达式是:
[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+
如何反转匹配?(它必须通过另一个 RegExp 来完成,YPipes 不支持任何其他方式。)
编辑:澄清:我有一个字符串,需要在其中获取第一个 URL。这就是为什么其他方法都不起作用的原因……</p>
Yahoo Pipes 支持正则表达式替换(使用字符串正则表达式模块)。
然后匹配您要保留的部分并将其捕获在一个组中。您已经在这样做了,尽管您的正则表达式本身有点错误,但这里至少纠正了明显的错误:
([A-Za-z]+://[A-Za-z0-9_-]+\.[A-Za-z0-9_:%&?/.=-]+) ^ ^ ^ | | | | | + 单独的破折号总是在角色类的末尾! | +--- 正斜杠不需要转义 +--- 捕获组 1,稍后通过 $1 访问内容
然后用该组的内容替换整个字符串。只需放入$1
“替换为”字段即可。实际上,这会删除您不想保留的所有内容。
由于我不确定您的正则表达式实际上应该做什么,因此我无法为您提供更好的版本。
作为一般提示:正则表达式始终且仅与匹配的东西有关,而永远不会与不匹配(即“排除”)的东西有关。有些正则表达式具有排除效果,但即使它们是通过匹配来实现的。