使用Regex定位换行符前的空白

f1tvaqid  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(93)

我想去掉符号后面的注解和行末的空白,这样我的代码就像这样

function solution(input, markers) {
   let regexp = new RegExp("["+ markers.join('') + "].*","gi")
   let removeWhiteSpace = input.replace(regexp,"")
   return removeWhiteSpace.replace(/\s+$/g,"")
};

我有一个字符串,如下所示
log(solution(“apples,plums % and bananas\npears\noranges!苹果酱”,["%",“!“]))
我很难在不影响其他空白的情况下定位“plums”之后的空白。我可以在这个正则表达式中改进什么来针对空白。

piv4azn7

piv4azn71#

您的代码所做的是匹配'%'或'之后的所有内容!',然后替换字符串末尾的空格。如果你试图删除标记中的符号并去掉字符串末尾的任何多余空格,那么你可以在一行代码中完成:

let regex = /(?:[%!]+\s*|\s*$)/gm
input.replace(regex, "")

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
)
jjjwad0x

jjjwad0x2#

要删除空白,您可以尝试以下代码

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');
    };

我们从文本中删除注解和多余的空格。

相关问题