2016-06-09 145 views
0

我正在翻译CAT软件中的文档,并且遇到大量带标签的文档时遇到问题。该软件支持正则表达式,我希望可以创建一个来帮助我解决这个问题。我需要一个正则表达式来选择光标插入点之间的所有内容,直到“小于”符号<,这标志着标签的开始。这将允许我立即开始打字,用我的翻译替换原文。 然后,我需要另一个表达式来跳转标签,也就是将光标放在最后一个“大于”符号之后,可以将其标识为“小于”符号后面的符号。换句话说,正则表达式会命令将光标移动到“大于”>符号之后的位置,紧接着除了“小于”<符号之外的任何其他位置。 下面是一个例子:正则表达式删除标签之间的文本

> Some student will investigate two dialects of </s1></s0><s2><s3>every 
> </s3></s2><s4><s5>language </s5></s4> 

插入点位于句首,词“有些”,我需要一个正则表达式,将选择所有文本到“小于” <符号前右,也就是在“of”之后。在这一点上,我需要一个正则表达式,可以在“every”之前跳过插入点。

+0

您可以在翻译之前将文本加载到文本编辑器(支持正则表达式,例如'Notepad ++')。那么这只是一个用空字符串替换'<[^>] +>'的问题。 [像这样。](https://regex101.com/r/aD9yM2/1)。 – ClasG

+0

谢谢vp_arth,因为我不是一个程序员,我不能确定,但​​它看起来可能类似于我的问题,但它要求用正则表达式来完成另一件事。此外,在其他线程的答案表明,使用正则表达式与HTML文件是不可能的,我不知道是否同样适用于XML文件,我需要一个正则表达式适用于。希望有人给我一个明确的答案来解答我的问题,并且有人向我澄清这一点。 –

+0

谢谢你的答案ClasG。我无法做到这一点,使用CAT软件的关键在于保持标签的位置并将文本翻译在它们之间。这样原始文档的格式保持不变。 –

回答

0

选择到下一个标签可与

[^<]* 

可以做到,那么这是一个有点不清楚,如果第二个正则表达式 - 跳过标记 - 应该简单地匹配标签。然后它是

<[^>]*> 

如果它应该选择下一个文本,它会更复杂。但是,让我们从这个开始;)。

+0

感谢您的帮助TEXHIK和ClasG。你的第一个表达式ClasG完成了前半部分的工作,它确实选择了“小于”符号的所有内容,当我从句子的开头选择到<符号时,这将会执行。 @TEXHIK,你的表达式正是我所需要的,但为了有用它需要排除>和<之间的零字符串匹配,这样我就跳过了标签。它只需要匹配在<<之间具有任意数量字符的字符串 –

0

[^>]*(?=<) 将查找><之间的所有文字。但是,它会找到选择结果,不放置光标某处。

相关问题