我有一个文字,例如:
Users of MW many times com-
plain that...
我想加入这个词:
Users of MW many times complain that...
我试过了:
value.replace(/[a-zA-Z][-]((\r\n)|(\n))/g, '')
但是这个解决方案在' - '之前也取代了一个字母。
我该怎么做?
答案 0 :(得分:1)
尝试删除部分:'[a-zA-Z]'。
答案 1 :(得分:1)
您可以在行末尾的连字符前使用单词边界,然后匹配0个或更多空白符号:
var s = "Users of MW many times com-\nplain that...";
document.write(s.replace(/\b-$\s*/gm, ''));
单词边界检查连字符是否以单词字符开头。
由于/m
修饰符$
匹配行的结尾。 \s*
匹配0个或更多的空白符号。
另一种选择是匹配一个字母并将其捕获并在$1
反向引用的帮助下在替换后续恢复:
var s = "Users of MW many times com-\nplain that...";
document.write(s.replace(/([a-z])-$\s*/igm, '$1'));
此处,/i
也用于启用不区分大小写的匹配。
答案 2 :(得分:0)
你可以试试这个:
value.replace(/([a-zA-Z])[-]((\r\n)|(\n))/g, '$1')