【问题标题】:regex match everything between two different characters正则表达式匹配两个不同字符之间的所有内容
【发布时间】:2025-12-15 10:45:01
【问题描述】:

我想匹配(但不包括)这两个字符之间的字符串:?&

示例字符串:

localhost/path/doc.html?970441179&token=specialtoken&actionurl=/portletaction/01654/0112

所以从上面我想匹配字符串970441179

【问题讨论】:

  • 使用正确的 URL 解析器
  • @MattBurland 获取该子字符串而不是解析并从 url 获取所有参数似乎非常具体..
  • @MattBurland 我在这里看不到 .net 或 c# 标签,先生。
  • 或者\?\K.*?(?=&)如果你不需要分组

标签: javascript html regex string-matching


【解决方案1】:

试试这个正则表达式(\d+)(?=&):

var str = "localhost/path/doc.html?970441179&token=specialtoken&actionurl=/portletaction/01654/0112";

console.log(str.match(/(\d+)(?=&)/g));

请注意,它仅适用于特定情况。

【讨论】:

  • 交换查询字符串参数的顺序会中断。
  • @MattBurland “请注意,它仅适用于特定情况”
【解决方案2】:
var str = "?samplestring&";
var patt = /[?]([^&]*)[&]/g;
var res = patt.exec(str)[1];

'res' 是你想要的结果。

【讨论】:

  • 我会写/\?([^&]*)\&/ - 还是使用单字符字符组有优势? (也不需要全局匹配)
  • 您可以使用其中任何一种。我认为使用单字符字符组没有任何优势,也不需要全局匹配。谢谢
最近更新 更多