避免在前瞻性正则表达式中长时间重复模式 - 如何简化?

问题描述 投票:0回答:1

我在javascript写一个正则表达式。 目的是从“部分”信息中删除标题。 例如:

  • 狼的复仇 - 第2部分=>狼的复仇
  • 沿路,第三部分。 =>沿路
  • 在彩虹的某个地方(第一部分)=>在彩虹的某个地方
  • 等[第4部分#] =>等

但是我想在“部分”之前保持ponctuation的特殊情况是有一个领先的副标题:

  • 在云 - [第2部分]命运=>在云中 - 命运

到目前为止,我写了一个“有效”的正则表达式,但我认为它可以简化。

这是一个工作示例:https://regex101.com/r/0dvJL4/5有没有办法简化模式的重复(在正则表达式中的前瞻和&之后使用?

重复的模式:

 {0,3}[\(\[]? ?[^\w]part[^\w][ -:]?(?:III|II|IV|IX|I|VIII|VII|VI|V|XIII|XII|XI|X|one|two|three|four|five|six|seven|eight|nine|ten|\d{1,3}){1} ?#?\.?[\)\]]?[\(\[]?(?:final)?[\)\]]?

thx任何建议

javascript regex
1个回答
1
投票

我不明白为什么你需要一个重复模式。此外,也许你不应该包括每个可能的零件号案例(\w+应该做):

/\s*[,-]?\s*[[(]?part[\s-:]\w+#?[\])]?/ig

Try it

str.replace(regex, "")一起使用它可以去掉你不需要的部件。

© www.soinside.com 2019 - 2024. All rights reserved.