我正在尝试编写一个仅匹配 HTML 中的 NASM 样式注释的 javascript 正则表达式。例如,"; interrupt"
匹配"INT 21h ; interrupt"
.
你可能知道/;.*/
这不可能是答案,因为评论之前可以有一个 HTML 实体;我认为/(?:[^&]|&.+;)*(;.*)$/
应该为它工作,但我发现它有两个问题:
" ; hello world".match(/(?:[^&]|&.+;)*(;.*)$/)
是一个数组[" ; hello world", "; hello world"]
。我不想要一个数组。" ; hello world; a message".match(/(?:[^&]|&.+;)*(;.*)$/)
是[" ; hello world; a message", "; a message"]
;更糟糕的是第二个元素。
问题:
- 为什么
(?:)
返回块? - 为什么
"; a message"
,不是"; hello world; a message"
? - 我可以使用什么正确的正则表达式?