Regex 正在分析特定参数值的url

Regex 正在分析特定参数值的url,regex,Regex,我希望使用正则表达式来解析URL,以获取URL的特定部分,如果找不到模式,则什么都不做。 url示例如下: /te/file/value/jifle?uil=测试cdas feaw:jilk:&jklfe=https://value-value.jifels/temp.html/topic?id=e997aad4-92e0-j30e-a3c8-jfkaliejs5c452fds-634d-f424fds-cdsa&bf_action=jildape 我想把黑体字写进去 当前im使用regex d

我希望使用正则表达式来解析URL,以获取URL的特定部分,如果找不到模式,则什么都不做。 url示例如下:

/te/file/value/jifle?uil=测试cdas feaw:jilk:&jklfe=https://value-value.jifels/temp.html/topic?id=e997aad4-92e0-j30e-a3c8-jfkaliejs5c452fds-634d-f424fds-cdsa&bf_action=jildape

我想把黑体字写进去

当前im使用regex d=[^]*但问题是im也会跨此模式的URL运行: 我得到了它的粗体部分

/te/file/value/jifle?uil=测试cdas feaw:jilk:&jklfe=https://value-value.jifels/temp.html/topic?id=e997aad4-92e0-j30e-a3c8-jfkaliejs5和bf_动作=jildape


我更希望它没有与此url匹配的内容,因为它不包含

正则表达式不是一个神奇的工具,您不应该总是使用它,因为问题涉及字符串。在这种情况下,您的语言可能有一个工具为您拆分URL。在PHP中,这是解析url。在Perl中,它是URI::URL模块


对于这样的常见问题,您几乎应该总是更喜欢现有的、经过良好测试的解决方案,而不是编写自己的解决方案。

因此您希望匹配id参数的值,但前提是它的尾部包含一个符号,而不匹配或后面是什么

由于不知道您正在使用的正则表达式的具体样式,下面的例子如何:

id=([^#&]*)#
这将获取'id='之间的所有字符类[a-zA-Z_0-9-],并假设'id='之间的所有字符都在该字符类中。如果其中有一个“&”,则正则表达式将失败

id=
-不言而喻,这将查找“id=”的精确匹配

([\\w-])
-这将定义和字符类并对其进行分组。\w是一个转义的\w。'\w'是来自java的预定义字符类,等于[a-zA-Z_0-9]。我在这个类中添加了“-”,因为您的示例中使用了假定的模式

+?
-这是一个不情愿的量词,它寻找正则表达式的最短匹配

#
-正则表达式的末尾,我们要查找的最后一个字符与模式匹配。 如果要获取“id=”和其后第一个字符之间的每个字符,则以下操作将起作用,并且它使用与上面相同的逻辑,但将字符类[\\w-]替换为与任何内容匹配的

regex = "id=(.+?)#"

您编写正则表达式的语言是否特定?
regex = "id=(.+?)#"