用于删除字母和 '[单引号] 以外的任何内容的正则表达式

Regular expression to remove anything but alphabets and '[single quote]

本文关键字:任何内 正则表达式 单引号 删除 用于      更新时间:2023-09-26

如何更改此正则表达式以从字符串中删除除字母和'(单引号(之外的所有内容?

pattern = /'b(ma?c)?([a-z]+)/ig;
  1. 此模式删除了不需要的空格并将第一个字母大写,并将其余字母变为小写
  2. 我所说的字母是指英文字母a-z。

删除字符,您需要使用实际执行此操作的东西,例如字符串replace函数(可以接受正则表达式作为"from"参数(。

然后你只是在处理字符类的正常应用程序,在 JavaScript(和大多数其他正则表达式变体(中,它使用 [...] 来描述,其中...是类中应该包含的内容。您将使用开头的^来反转类的含义:

在您的情况下,可能是:

str = str.replace(/[^A-Za-z']/g, "");

。它将替换英文字符A-Z (ABCDEFGHIJKLMNOPQRSTUVWXYZ(,a-z(abcdefghijklmnopqrstuvwxyz(和没有任何东西的单引号(例如,删除它(。

let str = "This is a test with the numbers 123 and a '.";
console.log("before:", str);
str = str.replace(/[^A-Za-z']/g, "");
console.log("after: ", str);

但是,请注意,英语中不使用的字母字符也不例外,并且

网络上使用的各种语言中有很多字母字符(甚至在英语中,"借用"单词,如"瞧"和"天真"(。

已经说过你只使用英语 A-Z 就可以了,但对于其他人来说:在支持 ES2018 及更高版本的 Unicode 属性匹配的环境中,你可以使用 'p{Alpha} 属性处理 Unicode 认为"字母"的任何内容,而不仅仅是 A-Z。'p表示"匹配此 Unicode 属性"(像往常一样,小写版本'p表示"匹配",大写版本 'P 表示"不匹配"(,{Alpha}表示"字母":

str = str.replace(/[^'p{Alpha}']/gu, "");

(请注意,同样,'p{Alpha}的意思是"字母",但由于它属于否定字符类,因此我们排除了字母字符。

请注意上面的u标志,以启用较新的 Unicode 功能。这也处理了"瞧"和"幼稚"的例子:

let str = "This is a test with the numbers 123 and a ' and voilà and naïve.";
console.log("before:", str);
str = str.replace(/[^'p{Alpha}']/gu, "");
console.log("after: ", str);