我正在尝试搜索出现在波浪线(~
)符号边界内的单词。
e.g. ~albert~ is a ~good~ boy.
我知道可以使用~.+?~
来实现,而且这对我已经有效了。但是有些特殊情况下,我需要匹配嵌套的波浪号句子。
e.g. ~The ~spectacle~~ was ~broken~
在上面的例子中,我必须分别捕获“ The Spectacle”,“spectacle”和“broken”。这些将逐字翻译或附带冠词(An,The,whatever)进行翻译。原因是在我的系统中:
1) 'The spectacle' requires a separate translation on a specific cases.
2) 'Spectacle' also needs translation on specific cases.
3) IF a tranlsation exist for The spectacle, we will use that, ELSE
we will use
另一个用来解释的例子是:
~The ~spectacle~~ was ~borken~, but that was not the same ~spectacle~
that was given to ~me~.
在上面的例子中,我将会有翻译:
1) 'The spectacle' (because the translation case exists for 'The spectacle', otherwise I would've only translated spectacle on it's own)
2) 'broken'
3) 'spectacle'
4) me
我在尝试组合一个表达式,以确保它被捕获在我的正则表达式中。到目前为止,我成功使用的是“〜.+?〜”。但我知道通过某种形式的前瞻或后顾,我可以让它工作。有人能帮我吗?
最重要的方面是回归测试,这将确保现有内容不会被破坏。如果我成功了,我会发布它。
N.B. 如果有帮助的话,当前只有一级嵌套需要分解。所以,“〜The ~spectacle~~”将是最深层次(直到我需要更多!)