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

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

司寇祺
2023-03-14
  • 所有非字母数字字符
  • 所有换行符
  • 空白的所有多个实例

只有一个空格

对于那些在家里玩的人(以下方法确实管用)

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

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

  • [^A-Z0-9]-删除非字母数字字符
  • \s+-匹配任何空格集合
  • \r?\n\r-匹配所有新行
  • /GMI-全局、多行、不区分大小写

然而,我似乎无法以正确的方式来设置正则表达式(以下操作不起作用)

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

共有1个答案

丌官招
2023-03-14

请注意,\w会留下下划线。[^A-ZA-Z0-9]的简短等价物是[\w_]

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

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

regex101.com上的示例

 类似资料:
  • 我正在寻找一个整洁的正则表达式解决方案来代替 所有非字母数字字符 所有换行 空白空间的所有多个实例 只有一个空格 对于那些在家里玩的人(以下确实有效) 我的想法是正则表达式可能足够强大,可以在一个语句中实现这一点。我认为我需要的组件是 -删除非字母数字字符 但是,我似乎无法以正确的方式设置正则表达式的样式(以下内容不起作用) 输入 期望输出

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

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

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

  • 这应该只得到数字和返回,但不做它作为预期的!有什么建议吗?

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