我有这个正则表达式
(?<=\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