我有一个带有一些注释标记的文本。方括号“(”和“)”或“[”和“]”用于确定注释的一部分(就像在普通文本中一样,就像这句话一样)。我想对其执行正则表达式以搜索输入中的某些内容,但是...它应该忽略所有注释。
问题是:
- 它们可以出现在任何地方(我不知道在哪里以及有多少)
- 我不能轻易剥离它们(执行替换正则表达式来杀死所有出现),因为在原始文本中执行我的搜索正则表达式后我需要知道索引和长度
- 它必须在巨大的输入文本上尽可能快
注释不能嵌套,不会出现“123(Hello(World))”之类的东西。如果注释括号是字符串的一部分(在引号中),它们是文本的一部分,因此没有注释。
这是一个例子:
Input Text: "Hello, my (real) name is John. I worked in England (near London) on a real german restaurant.".
Search Regex: "my.*?real"
Output: "my (real) name is John. I worked in England (near London) on a real" (index=7, length=67)
解决这个问题的最佳方法是什么?