正如我上面写的那样,如果它没有以特定的单词结尾("完成。"),我想得到(对不起,我写了支票)一行,并且它以这个字符开头:" [ - ]"。
示例:
[-] Blabla bla bla. [✓]
[*] Blabla bla done. [X]
[.] Bla bla bla done. [X]
这是我的尝试:
/\[-\](.*)[^done\.]$/gmi
你知道我怎么做吗?
非常感谢!
答案 0 :(得分:2)
就这样:
/^\[-\](?!.*\bdone\.(?:[\n\r]|$))/mgi
(?!.*\bdone\.(?:[\n\r]|$))
是负面的预测。检查该行是否以done.
^[-]
正在检查连字符是否在字符串的开头。
\b
是一个单词边界,因此它不会选择像xyzdone.
(?:[\n\r]|$)
正在检查字符串的结尾或换行符。
答案 1 :(得分:1)
由于您已将其标记为javascript,因此您可以执行以下操作:
function check(input,word)
{
return /^\[-].+/.test(input) && !new RegExp(word +"$").test(input);
}
这样称呼:
check('[-] e3r34 done.','done.'); // false
check('[-] e3r34 not.','done.'); // true