如何在字符之间进行匹配,但不将它们包含在结果中
How to match between characters but not include them in the result
假设我有一个字符串"&something=variable&omething_else=var2"
我想在&something=和&,所以我会写一个正则表达式,看起来像:
/(&something=).*?(&)/
match()的结果将是一个数组:
["&something=variable&", "&something=", "&"]
我一直通过手动替换开始和结束元素来解决这个问题,但有没有办法完全不将它们包括在匹配结果中?
您使用了错误的捕获组。你应该使用这个:
/&something=(.*?)&/
这意味着,您不需要捕获您不想要的东西(分隔符),而是捕获您想要的内容(数据)。
您根本无法避免它们出现在您的匹配结果中,但您可以更改它们的显示方式,使其对您更有用。
如果您将匹配模式更改为/&something=(.+?)&/
,则使用"&something=variable&something_else=var2"
的测试字符串,匹配结果数组为["&something=variable&", "variable"]
第一个元素总是整个匹配,但第二个元素将是从括号中捕获的部分,这通常更有用。
我希望这能有所帮助。
如果您正试图从字符串中获取variable
,使用replace with backreferences将获得您想要的内容:
"&something=variable&something_else=var2".replace(/^.*&something=(.*?)&.*$/, '$1')
给你
"variable"
相关文章:
- 包含插入的Meteor方法没有返回记录ID作为结果
- jQuery 在结果中包含创建的子项
- 不要在顺序链式承诺中包含 q 承诺结果
- 如何在element.select的结果中包含当前元素
- 如何在php JSON编码结果中包含谷歌分析
- 如何在字符之间进行匹配,但不将它们包含在结果中
- 如何在PHP中包含动态Javascript页面的静态HTML结果
- Meteor.js HTTP.get 获取 JSON 引号并解析结果似乎包含一个回调函数
- Select2 以编程方式设置搜索词并打开包含相关结果的下拉列表(无 ajax 调用)
- 从包含的 php 文件刷新查询结果
- 为什么代码似乎有效,但结果中也包含未定义
- 键控包含用于阻止结果的筛选
- 打开对话框,其中包含在使用 magnificPopup 构建的弹出窗口中跟随 URL 返回的结果
- 如何将一个结果列表合并到一个包含汇总的压缩对象中
- 输出一个结果数组,其中包含给定数组的唯一元素的分组计数
- 使用Rally SDK 1.33创建一个包含两个findall调用结果的表
- javascript foreach返回包含名称的结果
- 返回包含所有可能的括号组合和每个括号组合的结果的等式
- 为什么结果包含多个具有相同值的副本
- AngularJS我正在尝试计算嵌套ng重复中包含的许多输入(ng模型)的结果