正则表达式:匹配字母数字和空格,但前导空格除外

时间:2019-05-29 01:10:06

标签: regex bash text

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

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


文本: # 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

1 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式

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

Demo