[英]regex match multiple unordered capture groups
我在网上看到了一些解释,但是我不完全理解它们。 我有一个无序的uri,也可以有可选参数,调用时它可能会也可能不是uri的一部分。 形式的东西
/getthis?servicename=aservice&userid=123555712345&something=value&anotherthing=novalue
或
/getthis?servicename=aservice&userid=123555712345
参数servicename
和userid
将始终存在,但是something
(以及其他参数/值)可能会或可能不会添加到uri。
我尝试使用命名组来捕获感兴趣的每个参数部分,并通过执行以下操作来处理出现或未出现的url参数:
^(?<a>servicename=.*)&(?<b>userid=(123(555|666|777|...)\\d+))(?<c>\\&?.*)$
(userid具有需要匹配的数字组,此匹配影响如何修改servicename的值。)
但是我不知道如何确保捕获组以任何顺序出现,它们将被解析。 请有人告诉我该怎么做?
正则表达式可能不是您所处情况的最佳解决方案。 如果您可以使用感兴趣的语言来使用url库,那将是最简单的,但是否则最好将&
处的URL分开,然后在=
处断开结果参数以获取对。 然后处理参数键/值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.