javascript - 正则表达式:无法检查一行是否不以单词结尾

标签 javascript regex node.js

正如我上面所写,我想获取(抱歉我写了检查)一行,如果它不以特定单词(“完成”)结尾,并且以以下字符开头:“[-]”。

示例:

[-] Blabla bla bla. [✓]
[*] Blabla bla done. [X]
[.] Bla bla bla done. [X]

这是我的尝试:

   /\[-\](.*)[^done\.]$/gmi

你知道我该怎么做吗?

非常感谢!

最佳答案

就这样:

/^\[-\](?!.*\bdone\.(?:[\n\r]|$))/mgi

(?!.*\bdone\.(?:[\n\r]|$)) 是负向先行。检查该行是否未以 done 结尾。

^[-] 正在检查连字符是否位于字符串的开头。

\b 是单词边界,因此它不会选择像 xyzdone 这样的单词。

(?:[\n\r]|$) 正在检查字符串的任一结尾或换行符。

关于javascript - 正则表达式:无法检查一行是否不以单词结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22868328/

相关文章:

javascript - Phaser3 javascript 无法加载图像

javascript - 从本地存储收集数组时出现 "JSON.parse"问题

javascript - 通过 GetElementsbyClass 内的标签在 GetElementbyID 嵌套的 dom 元素内获取元素

regex - 从列 csv 正则表达式中删除分隔符

html - 如何修改正则表达式以删除所有后跟 CR 或 LF 的字符串

javascript - Node.js 启动更新器并关闭主程序

node.js - 如何使用 Sequelize 查询 tstzrange?

javascript - 我想在我的导航中添加一些类(class)

regex - 无法增加在正则表达式匹配的第 1 组中捕获的数字

javascript - Promise.all 和 Promise.race 有效地做出所有 promise "handled"是记录在案的行为吗?