正则表达式匹配不以特定字符串结尾的组

PacDroid

我正在使用javascript正则表达式引擎,并且在使用正则表达式时遇到了困难:

这是一个示例(这是我必须匹配的丑陋的js脚本提取):

{data = function() {[{id:"1441-aeze",name:"theme1"},{id:"1441-aezb",name:"theme2"},{id:"1441-aezc",name:"theme3-a"},{id:"1441-aezd",name:"theme1-mtr"},{id:"1441-aezf",name:"theme4"}]}}

我的正则表达式尝试:

id:"([^"]+)",name:"(?![^"]*mtr$)[^"]*"

匹配组1的预期结果:

Match[1] : 1441-aeze
Match[1] : 1441-aezb
Match[1] : 1441-aezc
Match[1] : 1441-aezf

但这与我的样本的每个部分都匹配。我不明白为什么

这是reg101:Regex101示例

塞巴斯蒂安·普罗斯克(Sebastian Proske)

我不确定,$您的前瞻性应该做什么,但在字符串的末尾(或带有m-Modifier的行的末尾)未进行转义匹配,但是在末尾没有行的末尾你的比赛。在你的模式中,"信号的比赛结束,所以你只需更换$"得到它的工作,像id:"([^"]+)",name:"(?![^"]*mtr")[^"]*"

查看更新的链接:https : //regex101.com/r/tY1aG7/4

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java模式正则表达式,用于查找不以特定子字符串结尾的数字

不以给定后缀结尾的字符串的正则表达式

正则表达式用于任何不以.js结尾的字符串

正则表达式:精确匹配的字符串以特定字符结尾

如何编写正则表达式,以匹配以特定内容开头或结尾的字符串部分

Scala:查找不以某些字符串结尾的最大字符串的正则表达式

匹配包含以4位正则表达式结尾的特定子字符串的字符串

正则表达式:如何匹配不以特定字符串开头的数字

使用正则表达式匹配不以s结尾的字符串

正则表达式查找货币而不以字符串结尾

Python正则表达式可匹配仅包含字母数字,'-'和'_'且不以任何特殊字符开头或结尾的字符的字符串

正则表达式以匹配一个以单词开头,以数字结尾或不以数字结尾的字符串

正则表达式匹配直到满足特定字符串或字符串结尾

正则表达式匹配不以空格开头或结尾的字符串

正则表达式匹配不以空格开头,包含或结尾,并且不为空字符串

正则表达式-不包含字符串,也不以/结尾

正则表达式特定的匹配字符串

Powershell正则表达式提取不以中间字符串结尾的值

PERL正则表达式查找不以句号结尾的特定字符串

正则表达式中的分组,它匹配每个不以特定字符开头的子字符串

不以序列开头和结尾的字符串的正则表达式

正则表达式匹配模式,除非它以特定的字符串结尾

正则表达式与特定字符串匹配

正则表达式匹配的字符串,如果字符串不以特殊字符结尾

正则表达式匹配不应以特定字符开头或结尾的字符串

不以序列结尾的字符串的正则表达式模式

正则表达式匹配由空格分隔的数字值,但整个字符串不以空格结尾

正则表达式 - 以特定字符串开头但不以另一个子字符串结尾

正则表达式匹配以字符串开头或不以字符串开头的值