我想删除符号后面的注释和行尾的空格,所以我的代码如下所示
function solution(input, markers) {
let regexp = new RegExp("["+ markers.join('') + "].*","gi")
let removeWhiteSpace = input.replace(regexp,"")
return removeWhiteSpace.replace(/\s+$/g,"")
};
我有一个像下面这样的字符串
console.log(solution("苹果、李子 % 和香蕉 梨 橙子!苹果酱",["%", "!"]))
我很难在不影响其他空白的情况下定位“李子”后面的空白。我可以在这个正则表达式中改进什么来定位该空白。
您的代码所做的是匹配“%”或“!”之后的所有内容然后替换字符串末尾的空格。 如果您尝试删除标记中的符号并去除字符串末尾的任何额外空格,那么您可以用一行代码来完成此操作:
let regex = /(?:[%!]+\s*|\s*$)/gm
input.replace(regex, "")
正则表达式:/(?:[%!]+\s*|\s*$)/gm
(?: Non capture group
[%!]+\s* zero or more spaces that follow one or more symbols (from marker var)
| OR
\s*$ zero or more spaces at the end of the input string
)
要删除空格,您可以尝试此代码
function solution(input, markers) {
const reg = new RegExp("["+ markers.join('') + "].*","gi")
const lines = input.split('\n');
const processedLines = lines.map(line => line.replace(reg, '').trim());
return processedLines.join('\n');
};
我们从文本中删除注释和多余空格。