我正在尝试从未完成 句子/单词中删除带有省略号的字符串,而不是使用省略号删除任何句子:
1. String ... String
2. String String Str...
3. String string String ...
4. String Strin... String
5. String String ... Stri==...
输出:
1. String ... String
3. String string String ...
我的第一个想法是尝试迭代每个句子,但我认为正则表达式会更好(更好)。
正则表达式可以吗? 如果是这样怎么样?我尝试了几次正则表达式失败。
任何帮助都将受到赞赏。
ps :我无法发布实际字符串(公司政策),这就是我发布这些虚拟示例的原因。
修改
我尝试过正则表达式:
/(\.*)\.\.\./mgi (I'm not an expert)
但在某些情况下会失败......
我将检索String数组中的每个句子,而不是一个庞大且凌乱的String。
基本上任何有未完成的单词或句子的东西我都需要放弃。 (任何在省略号之前都有单词或单个字符的东西)
答案 0 :(得分:1)
是的,你基本上是在寻找[any character 1 or more times][...]
,这将是regexp:
\w+\.{3}
这假设省略号总是3点,如果不是,你可以改为\.+
。使用它来查找要删除的句子,然后保留其他项目。
答案 1 :(得分:1)
我认为无效句子后面总会有...
的单词。
在下面的正则表达式中,您可以放置任何实际上与您的单词分开的内容。现在,我放了.
和(空格字符)。
var str = `1. String ... String
2. String String Str...
3. String string String ...
4. String Strin... String
5. String String ... Stri==...`;
var cleaned = str.split('\n').filter(function (line) {
return !line.match(/[^\. ]+\.{3}/);
}).join('\n');
console.log(cleaned);
/*
prints
1. String ... String
3. String string String ...
*/