正则表达式WORD的最后一个字符

时间:2017-05-08 21:11:17

标签: regex string

我试图匹配WORD中的最后一个字符。

WORD是一系列非空白字符 ' [^ \ n \ r \ t \ t \ f]',或匹配^ $的空行。

我这样做的表达是: " [^ \ n \ t \ r \ n] \(?:[\ $ \ n \ t \ r \ n] \)"

正则表达式匹配空白字符或行尾的非空白字符。

但我不知道如何阻止它从结果中排除以下空白字符,以及为什么它似乎没有捕捉到行尾之前的字符。

使用字符串"嗨世界!",我希望:" i"和"!"被捕获。

相反,我得到:"我"。

我可以采取哪些措施来解决这个问题?

1 个答案:

答案 0 :(得分:3)

请注意readFolder() { dialog.showOpenDialog({ properties: ['openDirectory'] }, (dirFiles) => { console.log(dirFiles); if (dirFiles === undefined) { console.log('No file '); return; } const pathName = dirFiles[0]; fs.readdir(pathName, (err, files) => { files.forEach(file => { fs.readFile(file, 'utf-8', (err, data) => { if (err) { console.log(`something went wrong ${err}`); } else { console.log(data); } }); }); }); }); } 中的非捕获组(?:...)仍然匹配(消耗)空白字符(因此,它成为匹配的一部分)并且在结束时不匹配作为[^ \n\t\r\f](?:[ \$\n\t\r\f])符号的字符串不是字符类中的字符串结束锚,它被解析为文字$符号。

您可以使用

$

请参阅regex demo

\S(?!\S) 匹配非空白字符,后面没有非空白字符(由于\S负向前导)。