我在网上看到了一些解释,但是我不完全理解它们。 我有一个无序的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的值。)
但是我不知道如何确保捕获组以任何顺序出现,它们将被解析。 请有人能告诉我该怎么做吗?
答案 0 :(得分:0)
正则表达式可能不是您所处情况的最佳解决方案。如果您可以使用感兴趣的语言来使用url库,那将是最简单的,但是否则,最好在&
处拆分URL,然后在=
处拆分结果参数以获取对。然后处理参数键/值。