繁体   English   中英

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

[英]Regex to get first part of a string

我有这个正则表达式

(?<=\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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM