正则表达式*无法正常工作

时间:2015-04-21 13:29:09

标签: regex regex-negation regex-lookarounds regex-greedy boost-regex

我有字符串" abc.aspx?sdfsdfds; eter; yid = 10"。我希望我的正则表达式匹配该字符串的10部分。

我写了正则表达式(abc.aspx?* [?;] yid =),但它与我的字符串不匹配。 正则表达式abc.aspx?yid = 10; sdfsdf匹配我的字符串,我使用它代替*。

为什么第一个正则表达式与*不匹配,但第二个没有它的正则表达式呢?

我也希望在这个条款中使用[' test'?%]。 即在我想要之前我只想?,%,测试。对于单个字符,它可以工作,即$%,但它适用于Test 我试过这个(abc.aspx。* ['测试'?%] yid =)但它考虑了这个问题。作为角色而不是我想匹配整个测试词。

2 个答案:

答案 0 :(得分:1)

您必须转义?并使用.*代替*

abc.aspx\?.*[?;]?yid=(\d+)

Demo and Explanation

答案 1 :(得分:1)

转义问号以获取文字问号,如果yid可以在问号后立即显示,则需要将整个介入输入设为可选:

abc.aspx\?(.*;)?yid=(\d+)

您的目标位于第1组。

请参阅使用两个示例输入的live demo