我有3种类型的支付(在线,离线,按余额计算),每种支付类型都有不同的url,所以我使用regex来匹配所有这些url:
1-订单/结账/未付款/已完成
2- order/checkout/paid/done?Authority=000000000000000000000000000039067905&Status=OK 3-订单/结帐/付款/完成?状态=确定
regex:(.*?)完成
这个正则表达式匹配所有的urls,但问题是它也匹配了一些页面!使用此产品页面:
/tork-doner-motahari-tehran
解决办法是什么?
发布于 2017-06-27 13:07:15
你可以用
(.*)done($|[?])
关键是您需要在字符串的末尾或最后一个done
匹配?
。该模式将匹配
(.*)
-任何0+字符,尽可能多,直到最后一次出现后续子模式。done
-文字子字符串done
($|[?])
-- $
(字符串锚的末尾)或文字?
(可以在模式中写成\?
,主要是在?
左边没有括号或\
的?
表示原子的1或0次重复)。请注意,如果不使用捕获组值,则可以通过在?:
之后添加(
将组转换为非捕获。
https://stackoverflow.com/questions/44780839
复制相似问题