正则表达式:匹配字母数字和空格,但前导空格除外
Posted
技术标签:
【中文标题】正则表达式:匹配字母数字和空格,但前导空格除外【英文标题】: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 变体......我已经更新了我的问题的期望结果和澄清的例子。 【参考方案1】:你可以使用这个正则表达式
^[^a-z0-9]+|[^a-z0-9 ]+|\s2,|[^a-z0-9]+$
^[^a-z0-9]+
- 匹配字符串开头的字母数字以外的任何内容
[^a-z0-9 ]+
- 匹配除字母数字和空格以外的任何内容
\s2,
- 匹配两个或多个连续的空格字符
[^a-z0-9 ]+$
- 匹配字符串末尾的字母数字以外的任何内容
Demo
【讨论】:
以上是关于正则表达式:匹配字母数字和空格,但前导空格除外的主要内容,如果未能解决你的问题,请参考以下文章