regex - 如何在正则表达式匹配中排除起始字符串
问题描述
我有一个包含以下变量的字符串“nonce=1ff7de7518b9a52080489ecd7629796d&”如何获取正则表达式中等于和“&”之间的值,我试过nonce=(.*?).+?(?=&)结尾部分排除了“&”,但我不能排除“nonce=”
注意:尝试匹配“=”和“&”之间的值将不起作用,因为有许多“=”和“&”字符会导致超过 1 个匹配,唯一的字符串是“nonce”
这是一个示例https://regexr.com/48vmd
解决方案
您可以使用nonce=([^&]+)
从 group1 匹配和捕获您想要的字符串
这里nonce=
将按字面意思匹配,然后([^&]+)
将匹配之前的所有文本&
并在 group1 中捕获。
如果您的正则表达式支持\K
匹配重置运算符,您可以使用此正则表达式nonce=\K[^&]+
将您的预期文本作为完全匹配,而无需任何组文本捕获。
如果您使用的是 Java,则可以使用此正则表达式,它使用后看并且 Java 支持后看。
(?<=nonce=)[^&]+
推荐阅读
- javascript - 偶尔 (404) 未找到,用于 SpreadsheetsService.Query
- go - Go API 在 GCP 网络连接中心创建 hub/spoke
- python - 比较两个 python 列表时访问最小值
- outlook-addin - 在 Outlook 项目发送事件处理程序中,单击消息发送时抛出的发送按钮错误
- mysql - SQLAlchemy mysql 无法获取正确的字符集
- python - 在 django 中访问 sqlite3 中的异常线程
- python - OpenCV线检测python
- javascript - Javascript - 按多个值对对象进行排序
- javascript - 在 mssql 中使用各自的 id 更新多行和多列
- asp.net-mvc - 独立运行React Native,独立运行MVC时调用MVC动作方法