2017-06-13 47 views
-1

我在创建正确的正则表达式时遇到了问题。 这是我到目前为止有: https://regex101.com/r/d0epRo/2可选问号 - 正则表达式

我需要添加到这个链接一个参数,我要确定的wheather有问号或没有。因此?应该是可选的,但我无法让它工作。

那些不工作(\?|)(\?)?(\??)

这些应标http://www.polskieszlaki.plhttp://www.polskieszlaki.pl/wawel.htm但不

我没有forther想法。请帮助。

+0

为什么不使用[DOM文档(http://php.net/manual/en/class.domdocument.php)(与DOMXPath也许)? –

+0

我想这很慢 – piernik

+0

至少你会明白你在做什么。你的正则表达式是一团糟,并没有做你认为的那样。请将真实的要求添加到问题中。 –

回答

0

我想你想要的是这个正则表达式:

a[\s]+href="[^mailto][\S]+polskieszlaki\.pl(?:(.*))?(?:(\?)(.*))?\" 

这(?:...)表示 “不捕获”

-1

如果你只是想检索查询参数尝试:

a[\s]+href="[^mailto][\S]+polskieszlaki\.pl(.*)(?:\?(?<param>.*))\" 

然后,您可以提取param

或者在没有指定+忽略捕捉组更简单的形式:

a[\s]+href="[^mailto][\S]+polskieszlaki\.pl(.*)(\?(.*))\"