我正在研究一种用于匹配所有引号(双引号和单引号'一样)的正则表达式,这些引号前面必须有特定的字符,并且在到达相同的引号类型或遇到HTML注释(<!-)时将结束。
游戏规则是:
HTML标记名称本身(例如“ ”)无关紧要;正则表达式仅从HTML元素的属性获取输入(
正则表达式必须能够找到单引号('
)和双引号("
),但只能在达到其自己的引号类型(\1
),HTML逗号(<!--
)或末尾时转义。输入($
)。
如果遇到HTML注释,引号将被打断,但仍被视为引号:this regex:/[^\w!#£¤€´¨\-.:]('|")(.|\n)*?(\1|<!--|$)/
不过,DISALLOW区域中存在问题(正则表达式)。由于不允许使用第一个字符,因此正则表达式在这里永远不能工作。
在此先感谢您的帮助!
澄清度
regexpal.com上的示例。除DISALLOW部分下的内容以外的所有内容都是正确的。
期望的结果应该如下。粗体字表示使用上面的正则表达式显示的匹配项。那里的(许多)HTML注释以一致的方式结束了HTML标签。
允许
不允许
两种报价类型
停止HTML报价
输入结束
这(换行)仍然是报价的一部分
最佳答案
我知道了。当然,比赛开始时的引号字符应排除在外。
/[^\w!#£¤€´¨\-.:'"]('|")(.|\n)*?(\1|<!--|$)/
关于javascript - 正则表达式用于带有特定前置字符的HTML标记引号,并破坏HTML引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13765600/