得到除特殊词之外的一切

时间:2018-02-22 10:07:46

标签: regex

我需要一个符合几个词的所有期望的正则表达式。

输入字符串类似于:

This Is A &ltTest$gt;

它应匹配

This Is A Test

所以我想要了解 <>

周围的所有内容

我尝试了类似[^ ]的内容,忽略 的所有外观,但这排除了每个角色。

1 个答案:

答案 0 :(得分:1)

/&[a-zA-Z]{2,8};/g

故障:

  • & - 匹配&字面上
  • [a-zA-Z]{2,8} - 匹配范围a-zA-Z中的所有字符2至8次
  • ; - 直到半冒号

你可能遇到的最长的特殊字符是ϑ - θ,所以我在正则表达式中考虑了这一点。

正确的格式用空格替换每个特殊字符,并用一个空格替换行中的多个空格

let regex = /&[a-zA-Z]{2,8};/g,
string = "This Is A <Test>",
properlyFormatted = string.replace(regex, " ").replace(/\ +/g, " ");

console.log(properlyFormatted);

替代方案:

/&(?:lt|gt|nbsp);/g

故障:

  • & - 匹配&字面上
  • (?:lt|gt|nbsp) - 匹配ltgtnbsp
  • 中的任何群组
  • ; - 后面跟着一个半冒号

此正则表达式仅考虑您描述的特定字符。

let regex = /&(?:lt|gt|nbsp);/g,
string = "This Is A <Test>",
properlyFormatted = string.replace(regex, " ").replace(/\ +/g, " ");

console.log(properlyFormatted);