【发布时间】:2012-11-09 18:06:56
【问题描述】:
我在 HTTP 请求中有如下响应
href="index.php?module=Meetings&action=DetailView&record=ed51c2d9-1958-bd61-cce1-509d30ccd4ac">
我想获取“记录”的值,但是当我设置了
Regular Expression : record=(.+?)
只返回“e”。我需要做什么?
【问题讨论】:
我在 HTTP 请求中有如下响应
href="index.php?module=Meetings&action=DetailView&record=ed51c2d9-1958-bd61-cce1-509d30ccd4ac">
我想获取“记录”的值,但是当我设置了
Regular Expression : record=(.+?)
只返回“e”。我需要做什么?
【问题讨论】:
好吧,正则表达式消耗尽可能少(由于?)。因此,在接受第一个字符后就满足了。您可能宁愿让它变得贪婪并限制可能的字符(这样它就不能超过参数的末尾):
record=([a-f0-9-]+)
如果您不知道允许哪些字符作为参数的值,您也可以说,使用除 & 和引号之外的所有字符:
record=([^"'&]+)
根据您使用它的位置,您可能需要使用反斜杠转义其中一个引号。
【讨论】:
给定的文本
href="index.php?module=Meetings&action=DetailView&record=ed51c2d9-1958-bd61-cce1-509d30ccd4ac">
从给定文本值中获取记录值的正则表达式
record=(.+)"
正则表达式获取以下记录值
record=ed51c2d9-1958-bd61-cce1-509d30ccd4ac"
【讨论】:
record 参数将始终是列出的最后一个参数,这不是一个安全的假设。