我需要一个符合几个词的所有期望的正则表达式。
输入字符串类似于:
This Is A <Test$gt;
它应匹配
This Is A Test
所以我想要了解
,<
和>
我尝试了类似[^ ]
的内容,忽略
的所有外观,但这排除了每个角色。
答案 0 :(得分:1)
/&[a-zA-Z]{2,8};/g
故障:
&
- 匹配&amp;字面上[a-zA-Z]{2,8}
- 匹配范围a-z
和A-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
故障:
&
- 匹配&amp;字面上(?:lt|gt|nbsp)
- 匹配lt
,gt
,nbsp
;
- 后面跟着一个半冒号此正则表达式仅考虑您描述的特定字符。
let regex = /&(?:lt|gt|nbsp);/g,
string = "This Is A <Test>",
properlyFormatted = string.replace(regex, " ").replace(/\ +/g, " ");
console.log(properlyFormatted);