特定模式的Regex匹配,不包括特定模式
Regex match for a specific pattern excluding a specific pattern
我的示例字符串为:
'&label=20:01:27&tooltext=abc'&|'|cba&value=6|59|58|89&color=ff0000|00ffff'
'&label=20:01:27&tooltext=abc'&|'|cba&value=6|59|58|89'
我的目标是从"tooltext=
"中选择文本,直到第一次出现"&
"(前面没有''
)。我使用以下正则表达式:
/(tooltext=)(.*)([^''])(&)/
以及CCD_ 6功能
它对第二个字符串运行良好,但对第一个字符串,它选择直到最后一次出现不在''
之前的"&
"。
var a = '&label=20:01:27&tooltext=abc'&|'|cba&value=6|59|58|89&color=ff0000|00ffff',
b = a.match(/(tooltext=)(.*)([^''])(&)(.*[^'']&)?/i)
结果,
b = ["tooltext=abc'&|'|cba&value=40|84|40|62&", "tooltext=", "abc'&|'|cba&value=40|84|40|6", "2", "&"]
但我需要的是:
b = ["tooltext=abc&||cba&", "tooltext=", "abc&||cb", "a", "&"]
我认为您可以使用这样的正则表达式:
/tooltext=(.*?''&)*.*?&/
[Regex Demo
]
并且总是找到未逃脱的&
:
/tooltext=(.*?''&)*.*?[^'']&/
看起来您的正则表达式一直匹配到最后一个&
,而不是前面没有反斜杠的第一个。尝试添加?
运算符使其尽可能小地匹配,如下所示:
/(tooltext=)(.*?)([^''])(&)/
如果你只想要tooltext=
和&
之间的文本,试着让它返回作为匹配组的重要部分:
/tooltext=(.*?[^''])&/
相关文章:
- 如何将页面上的所有电话号码更改为可点击链接,不包括特定类别的元素
- 将正则表达式重新分解为不包括空组
- 为什么从JSON文本到类型的转换不包括函数
- XMLHttpRequest调用不包括If Modified Since标头
- 使用 JavaScript 执行一行 PHP(不包括 PHP 文件)
- 捆绑器不包括 .min 文件
- 与冒号(不包括冒号)之间的正则表达式单词匹配
- 包含特殊字符 (!,@,#,&) 不包括其他特殊字符
- 猫鼬混合模式不起作用
- Javascript RegEx:如何获取单引号之间的名称(不包括单引号)
- Javascript RegEx匹配URL's,但不包括图像
- Rails不包括用于javascript的require_tree
- 获取JS中特定路径的cookie,不包括根路径
- requireJS优化器不包括嵌套的require调用
- 不包括'+'和'&'正则表达式中的字符
- 如何获取html页面中所有p和h标记的值,不包括所有其他标记
- PUT 期间不包括视图模式可观察属性
- 不包括子模式的正则表达式
- Javascript regex匹配不包括结束模式的字符串
- 特定模式的Regex匹配,不包括特定模式