当前位置: 首页 > 知识库问答 >
问题:

将所有非字母数字字符、新行和多个空格替换为一个空格

胡劲
2023-03-14

我正在寻找一个整洁的正则表达式解决方案来代替

  • 所有非字母数字字符
  • 所有换行
  • 空白空间的所有多个实例

只有一个空格

对于那些在家里玩的人(以下确实有效)

text.replace(/[^a-z0-9]/gmi, " ").replace(/\s+/g, " ");

我的想法是正则表达式可能足够强大,可以在一个语句中实现这一点。我认为我需要的组件是

  • [^a-z0-9]-删除非字母数字字符

但是,我似乎无法以正确的方式设置正则表达式的样式(以下内容不起作用)

text.replace(/[^a-z0-9]|\s+|\r?\n|\r/gmi, " ");

输入

234&^%,Me,2 2013 1080p x264 5 1 BluRay
S01(*&asd 05
S1E5
1x05
1x5

期望输出

234 Me 2 2013 1080p x264 5 1 BluRay S01 asd 05 S1E5 1x05 1x5

共有3个答案

闻人杰
2023-03-14

由于[^a-z0-9]字符类包含所有非alnum字符,因此它也包含白色字符!

 text.replace(/[^a-z0-9]+/gi, " ");
庄萧迟
2023-03-14

乔尼5号比我快。我打算建议使用\W而不使用\s作为文本。替换(/\W/g,“”)。这也涵盖了空白。

刘选
2023-03-14

请注意,\W保留下划线。[^A-zA-Z0-9]的一个简短等价物是[\W\uz]

text.replace(/[\W_]+/g," ");

\W[A-Za-z0-9_]单词字符(包括下划线)的速记\w的否定

例如regex101。通用域名格式

 类似资料:
  • 所有非字母数字字符 所有换行符 空白的所有多个实例 只有一个空格 对于那些在家里玩的人(以下方法确实管用) 我的想法是,正则表达式可能足够强大,可以在一个语句中实现这一点。我认为id需要的组件是 -删除非字母数字字符 -匹配任何空格集合 -匹配所有新行 -全局、多行、不区分大小写 然而,我似乎无法以正确的方式来设置正则表达式(以下操作不起作用) 输入 所需输出

  • 我有这个regex来删除所有非字母数字字符。 添加到此行的任何帮助,以用单个空格替换所有多个空格。

  • 我希望使用正则表达式尝试删除字符串中的所有非字母数字字符,并用 我只想允许基本上按字母顺序排列的单词A-Z和 这是专门准备字符串成为URL的一部分,因此需要符号而不是空格。 我已经查看了< code>/\W /,但是这将删除所有空格和字母数字字符,而我希望尽可能保留空格,然后用符号替换。 我已经搜索了一下,但我似乎找不到一些东西,我希望有人能对此有任何简单的建议。 示例字符串

  • 问题内容: 我尝试使用此功能,但没有成功- 问题答案: 使用。 注意:删除了空格,因为通常不将其视为字母数字。

  • 在无数类似的SO问题中,没有一个是针对字符替换而不是剥离,另外还针对所有非ASCII字符而不是某个特定字符。

  • 问题内容: 我需要将所有非字符替换为一个空格。令我惊讶的是,这在Python中并不是一件容易的事,除非我丢失了某些东西。以下功能仅删除所有非ASCII字符: 并且该字符将非ASCII字符替换为根据字符代码点中字节数量的空格数量(即,–字符替换为3个空格): 问题答案: 你的表达式正在过滤,删除任何非ASCII的内容;你可以改用条件表达式: 这将一个接一个地处理字符,每个替换字符仍将使用一个空格。