您应该使用像 this 这样的工具或任何其他有助于调试的正则表达式工具。当我在那里检查你的正则表达式时,它不会完成这项工作。
[^\"]
* 将匹配 0 个或无限个不是 "
的字符。效果很好。但一开始的<
就毁了你所有的努力。所以 /id="bookmark-[^\"]*/gm
会起作用。在我明白为什么你的正则表达式不起作用之前,我还给了你我的变体如何尝试解决这个正则表达式。
/id="bookmark-"/gm
此正则表达式仅在完全匹配时才会匹配您的大小写 id="bookmark-"
。
/(id="bookmark-)[\w\s]*"/gm
此正则表达式将匹配您的 ID 和任何其他字符,直到 "
。所以它会匹配这个,例如id="bookmark-faes f1 2332454"
。
[abc]
- 匹配 a、b 或 c 字符。\w
- 匹配任何单词字符 [a-zA-Z0-9_]
\s
- 匹配任何空格、制表符或换行符。*
- 匹配前一个字符(在我们的例子中全部在 []
内)0 次或无限次。g
- 全球。m
- 多行。/
.
附注你可能不应该使用正则表达式来解析 html。