正则表达式获取字符串的第一部分

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式获取字符串的第一部分相关的知识,希望对你有一定的参考价值。

我有这个正则表达式

(?<=d.s).+(?=s-s)

当我有一个像这样的字符串时它很好用

3. product - sub product

正则表达式给了我产品(第一部分)。如果存在子产品,则通过用空格包围的破折号(-)从产品中分隔。

但是,有些产品没有副产品。例如:

6. ComprehensiveBolt

正则表达式应该给我comprehensiveBolt但它不返回任何东西。

我需要对正则表达式进行哪些更新,以便无论子产品​​的存在与否,我都可以获得该产品?

答案

这是一种方式。 请注意,只有在您的产品可能是短语时才需要这样做。

(?<=d.s)(?:(?!s-s|d.s).)+

https://regex101.com/r/uC2yDs/1

部分解释

 (?<= d . s )               # This must be behind
 (?:                           # -----------
      (?!                           # Neg assertion
           s - s                       # Not this ahead
        |  d . s                      # Nor this ahead
      )
      .                             # Ok, grab this character
 )+                            #  1 to many times

以上是关于正则表达式获取字符串的第一部分的主要内容,如果未能解决你的问题,请参考以下文章

仅获取英国邮政编码的第一部分

通过 Java 正则表达式提取 semver 版本字符串的片段

Python100天精通指南 之 re正则表达式

正则表达式 简单介绍

正则表达式验证密码必须由大小写字母、数字、特殊字符组成

Bash 中带有字符、点和数字的正则表达式