删除括号之间的文本,但仅在给定条件下

我有以下句子:

敏捷的棕色狐狸跳过懒惰的狗(见第 1 册)。敏捷的棕色狐狸跳过懒惰的狗(见上文)。敏捷的棕色狐狸跳过懒惰的狗(见第 2 册)。敏捷的棕色狐狸跳过懒惰的狗(见第 3 本书)

在以下条件下,我需要删除句子中括号之间的文本 - 括号和外部空格包括在内:

  • 括号之间的文本包含单词Book

  • 括号内的文字不放在句末。

所以那句话应该变成:

敏捷的棕色狐狸跳过了懒狗。敏捷的棕色狐狸跳过懒惰的狗(见上文)。敏捷的棕色狐狸跳过了懒狗。敏捷的棕色狐狸跳过懒惰的狗(见第 3 本书)

我知道这个正则表达式sentence.replace(/ *\([^)]*\) */g, "");- 但我不知道如何应用上述条件。


波斯汪
浏览 154回答 2
2回答

慕村9548890

另一个正则表达式:const regex = /\s\([^)]*?Book.*?\)(?=.*\(.*?Book.*?\))/g以JS形式举例:  const p = 'Text (see the Book "def"). Text (see above). Text (Book 2) with more text (Book 3).';     console.log(p.replace(regex, ''));

慕斯709654

在此,希望对你有所帮助const sentence = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit (see the Book "abc"). Quisque non ante nisi (see the Book "def"). Nam id justo velit (see above). Donec hendrerit dui sit amet tempus molestie (see the Book "ghi").'console.log(sentence.replace(/\s?\([\w\s\"]*?Book[\w\s\"]*?\)\s?(?=..*\w)/gm, ''));在这里你可以看到正则表达式的解释和实验 - https://regex101.com/r/hOZg0g/5
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript