我正在尝试使用正则表达式来匹配以下网址的一部分:
我希望正则表达式找到:
&3434323
基本上,它意味着搜索不遵循variable=value
公式的参数的任何部分。所以基本上我需要它来搜索没有相同符号的URL部分,但只匹配那部分。
我尝试使用:
&安培; \ W * + [^ = _-]
但它返回:& 3434323& 。我需要它不返回下一个&符号。
必须在正则表达式中完成。提前谢谢!
答案 0 :(得分:2)
您可以使用此正则表达式:
[?&][^=]+(&|$)
它会查找不包含等号[^=]+
的任何字符串,并以问号或&符号[?&]
开头,以&符号或URL结尾{{1}结尾}}
请注意,这将返回(&|$)
,因此您必须在代码中删除两侧的&符号。我认为你很好。如果你真的不想要第二个&符号,你可以使用前瞻:
&3434323&
如果您不想要第一个&符号,您可以使用此正则表达式,但并非所有编译器都支持它:
[?&][^=]+(?=&|$)
答案 1 :(得分:2)
解析查询参数可能很棘手,但这可能会起到作用:
((?:[?&])[^=&]+)(?=&|$)
它不会在参数末尾捕获&符号,但它会包含问号或开头的&符号。它将匹配任何非键值对形式的参数。
演示here。