【问题标题】:Regular expression that only matches before space or no space只匹配空格前或不匹配空格的正则表达式
【发布时间】:2018-02-06 15:40:28
【问题描述】:

我正在尝试制作匹配之后每个大写字母的全局正则表达式!但只有在空格或没有空格之前,不能有小写字母。

例如:

!ABC <space> !XYZ <no space> 应该返回:ABC XYZ

但是 !ABCtext <space>!XYZ<no space> 应该只返回:XYZ

我目前的代码是:

const regex = /![A-Z]*\s/g;

在 ! 之后返回大写字母即使它们后面直接跟更多的文字,没有空格。

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    ![A-Z]+(?=[^\w]|$)

    Demo

    【讨论】:

    • 非常感谢 :) 已解决
    • @pjproudhon 是的,这没问题,但如果单词是结束行则行不通
    • 确实如此,因为 EOL 不是小写字符。如果您依赖单词边界,也可以在没有任何环顾的情况下工作 [regex101.com/r/VBKsT9/5].
    【解决方案2】:

    正如@PJProudhon 建议的那样,我认为您可以使用!([A-Z]+)\b 使用单词边界\b

    ([A-Z]+) 将捕获组 1 中 ! 之后的大写字母。

    const regex = /!([A-Z]+)\b/g;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-26
      • 2017-04-05
      • 1970-01-01
      • 2010-10-08
      相关资源
      最近更新 更多