【问题标题】:Regex: Match alphanumeric and spaces with exception of leading spaces正则表达式:匹配字母数字和空格,但前导空格除外
【发布时间】:2019-10-14 13:13:17
【问题描述】:

我的目标是捕获字母数字字符和所有空格(减去前导空格)。 我遇到的问题是无法捕获非字母数字字符(符号)后面的空格。 如有必要,我愿意使用环视,但即使这样做也尚未解决此问题。

这是我已经完成的,如上所述:


文字: # one 123: two `three` four (five) six

想要的结果: one 123 two three four five six


*正则表达式尝试:

环顾四周:

(?! )[A-Za-z0-9 ]*(?<! )

结果: one 123twothreefourfivesix

没有环顾四周:

[A-Za-z0-9]+(?: +[A-Za-z0-9]+)*

结果:one 123twothreefourfive

【问题讨论】:

  • 为什么这个标签是 C and bash?你用的是什么正则表达式库?
  • 你想匹配那个字符串的哪一部分? “abc 123”?
  • 能否请您发布一些示例以及预期的输出
  • 我已经修复了标签,澄清了示例,并提供了我的示例结果
  • @Shawn 现在,我相信它是 POSIX 正则表达式库(在 grep 命令中使用它)......不过,我愿意使用 javascript 变体......我已经更新了我的问题的期望结果和澄清的例子。

标签: regex bash text


【解决方案1】:

你可以使用这个正则表达式

^[^a-z0-9]+|[^a-z0-9 ]+|\s{2,}|[^a-z0-9]+$
  • ^[^a-z0-9]+ - 匹配字符串开头的字母数字以外的任何内容
  • [^a-z0-9 ]+ - 匹配除字母数字和空格以外的任何内容
  • \s{2,} - 匹配两个或多个连续的空格字符
  • [^a-z0-9 ]+$ - 匹配字符串末尾的字母数字以外的任何内容

Demo

【讨论】:

    猜你喜欢
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多