我有这个正则表达式:
^https?:path?id=([a-zA-Z0-9._]+)&?.*&gl=([^&|n|ts]+)&?.*$
查询参数:
?id=([a-zA-Z0-9._]+)&?.*&gl=([^&|n|ts]+)&?.*$
我如何制作";gl";是可选的吗?
您可以使用
^https?:path?id=([^&]+)(?:.*?(?:&gl=([^&s]+).*)?)?$
请参阅regex演示。
详细信息:
^
-字符串的开头http
-固定的http
字符串s?
-可选的s
字符:path?id=
-固定的:path?id=
字符串([^&]+)
-组1:除&
字符之外的一个或多个字符(?:.*?(?:&gl=([^&s]+).*)?)?
-的可选序列.*?
-除换行符字符之外的任何零个或多个字符尽可能少(?:&gl=([^&s]+).*)?
-的可选序列&gl=
-固定字符串([^&s]+)
-组2:除空白和&
之外的一个或多个字符.*
-除了换行字符之外的任何零个或多个字符,尽可能多
$
—字符串结束