标签的正则表达式,但不包括属性



我从事视频游戏本地化工作,我们的 CAT 工具使用正则表达式来检测标签。通常,它们被 [] 括起来,所以我们使用 [(.*?(] 来识别它们。然后,CAT 工具会以标签格式导入此标签,这意味着翻译人员无法在没有警告的情况下编辑/破坏或删除标签。

但是,我们有一个项目,其中包含一个性别标签,其中包含我们需要翻译的属性。标记如下:

[Gender: "male", "female"]

这个想法是是否有一个标签可以将整个段识别为一个实体,但将男性和女性排除在外。我们使用了这三个(在逗号和方括号之间添加了一些空格以使\可见,如果令人困惑,请抱歉(:

 [Gender: "
" , "
" ]

但是,它可能也会在以下句子中产生文本问题: 他们说"不,我们没有","我们想要更多"等。

", "将被不必要地检测为标记。

有没有办法有一个唯一的正则表达式来避免这种情况?如果是这样,如果有更多的可翻译元素或有限制,是否可以拥有一个?I.e.: [Gender: "male", "female", "neutral"]

提前非常感谢!

更新:作为参考,我附加了正则表达式设置。在底部,您可以看到程序如何使用它们来创建标签。红色元素将转换为对象而不是文本。这样,翻译人员就不会破坏标签,也不会忘记添加标签。 在此处输入图像描述

好的,根据您的图片,我认为更好的方法是制作多个正则表达式。因为看起来您可以应用多个规则

一个匹配普通标签(注意它如何只匹配这些(

[([^:"])+]

https://regex101.com/r/xFvsCe/3

对于具有多个可翻译元素的片段,我们需要一些东西。

首先匹配这些元素的开头

[([^:n]+: ?")

https://regex101.com/r/q4Wgdu/2

然后一个标记逗号分隔符

(?<=[^]])(", ?")

https://regex101.com/r/U9krdh/2

最后是一个匹配片段末尾的

(?<=[^]]*?)"]

https://regex101.com/r/FkgOOx/2

您可能需要根据程序使用的正则表达式风格更改语法。最后两个正则表达式使用正反转,其语法可能略有不同。或者甚至可能不支持。

希望对你有帮助

编辑:如果规则应用于其他规则,这可能不起作用,因为我假设每次输入文本提供给规则时都是相同的。但也许这可以在过滤器下拉列表中配置?

最新更新