正则表达式翻译器(正则表达式 中文)
大家好,今天来为大家解答正则表达式翻译器这个问题的一些问题点,包括正则表达式 中文也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
正则表达式与筛选器在Trados中的运用
在Trados中,正则表达式与筛选器可分别用于快速定位特定文本和过滤特定结构内容,辅助译审和项目经理进行高效质检与批量更新。
利用筛选器对手册多级标题的检查在手册中译英项目中,多级标题的大小写和语法风格检查是重要环节。例如,客户风格指南要求章节标题采用Title Caps(标题实词首字母大写),且除名词性标题外,标题需采用动名词+宾语结构。然而,Trados中难以直接区分标题与正文,逐处查找效率低下。此时,筛选器可发挥关键作用,具体操作如下:
操作步骤:点击编辑器右侧“高级显示预览条件”>“文档结构”>“H”>“应用筛选条件”。
筛选结果处理:筛选后,译审或项目经理可直观查看标题内容,发现不符合风格指南的条目时,可直接在筛选出的句段上进行更正优化。取消筛选:若需取消筛选,点击“高级显示预览条件”下的“清除”即可。应用扩展:此方法不仅适用于手册标题检查,还可用于翻译Excel文件时对文档不同结构的集中筛选检查。利用正则表达式检查指定内容在手册翻译中,数值与度量单位空格、图注表注、冒号后首字母大小写等问题需保持一致。正则表达式可快速批量定位这些内容,提高质检效率。
例1:数值与度量单位空格检查
需求:数值与度量单位m、mm、cm之间保留一个空格符。
正则表达式:d+(m|cm)
说明:d表示任意数值,d+表示1个或多个任意数值,(m|cm)表示包含m和cm的文本(m已隐含mm情况)。通过此表达式可定位所有不满足空格要求的文本,但需避免一键替换,应逐一确认。
例2:图注表注快速定位
图注检查:在筛选器中搜索^图(^表示句子开头,后跟“图”字)。
表注检查:在筛选器中搜索^表。
例3:冒号后首字母大小写检查需求:冒号后无论句子还是短语,首字母均无需大写。
正则表达式::s[A-Z]
说明:此表达式可查找冒号后紧跟空格和大写字母的情况,可结合筛选器批量筛选。
例4:保护中文里现有英文和纯数值
需求:在中译英项目中,保护中文里现有的英文和大量纯数值不被篡改。
正则表达式:^[^u4e00-u9fa5]*$
说明:此表达式可在筛选器中筛选出所有不含中文字符的句段,并将其状态修改为锁定。
例5:定位非法断行
场景:处理经过译前OCR或AI转换后的xml文档时,可能存在非法断行。
正则表达式:^[a-z]
说明:此表达式可检索句首以小写字母开头的句段,快速定位可能存在非法断行的位置。
总结正则表达式与筛选器在Trados中的应用,为译审和项目经理提供了高效质检与批量更新的工具。在没有现成检查工具或Trados自带验证工具不便直接使用时,这两种方法可快速准确定位问题,提升项目运作效率与交付质量。值得进一步研究、拓展与优化,以创造更优质的验证体验。
用正则表达式判断一个二进制数是否能被3整除
例如,下面这个表达式可以匹配01串S当且仅当S是一个可以被3整除的二进制数。
^1((10*1)|(01*0))*10*$
如果你不信的话,不妨把下面这段代码粘贴进浏览器的地址栏,然后回车运行一下:
javascript:alert(/^1((10*1)|(01*0))*10*$/.test("1000000100"))
被test的是516的二进制表达。516可以被3整除,因此程序返回true。你可以自己把1000000100换成其它的二进制数试试。
但是呢,从这个正则表达式里我们竟看不出任何端倪。奇怪了,为什么这个正则表达式可以用于判断整除性?能被3整除的二进制数究竟有何规律?
其实,能被3整除的二进制数并没有什么明显的规律。这个正则表达式的求法可以说是相当暴力的。这一切的谜底很简单——判断一个数的整除性能轻易地用有限状态自动机实现,而有限状态自动机又可以翻译成正则表达式。
注意到,一个二进制数后面加一个“0”相当于该数乘以2,一个二进制数后面加一个“1”相当于该数乘2加1。设定三个状态,分别叫做0、1和2,它们表示当前的数除以3所得的余数。如果对于某个i和j,有i*2≡j(mod 3),就加一条路径i→j,路径上标一个字符“0”;如果i*2+1≡j(mod 3),则在路径i→j上标记“1”。状态0既是我们的初始状态,也是我们的最终状态。我们的自动机就做好了。现在,假如二进制数10010走进来了。从状态0出发,机器首先读到一个“1”,于是当前位置挪到状态1,表明目前该数模3余1;然后,系统读了一个“0”,我们紧跟着走到状态2,表明二进制数“10”被3除余2;下一步,我们回到状态1,表明“100”除以3余1;再往后,我们得知“1001”能被3整除。最后呢,我们读到一个0,“1001”的两倍当然还是能被3整除,我们依旧停留在原位。我们得到结论:二进制数10010能被3整除。
有限状态自动机是可以转化为正则表达式的。上面的这个自动机转化起来非常容易。我们可以先试着用自然语言叙述一下。首先,每个二进制数第一位必然为“1”。到达状态1后,我们可以随意地、任意多次地在状态1周围绕圈圈,最终回到状态1。临近末尾,我们再读到一个“1”返回状态0,这之后随便读多少个“0”都可以了。现在问题分解为:我们又如何用正则表达式表述“从状态1出发随意地走最终回到状态1”呢?在本例中,这是很好描述的:它可以是字符串“1000..001”和“0111..110”的任意组合。把这些东西用正则表达式写出来,就是我们刚才那个神秘的式子:1((10*1)|(01*0))*10*。
从原理上说,我们可以这种方法求出任意进制下用于任意数的整除性判断的正则表达式。只不过,它们所对应的自动机都更加复杂,从而得出一长串令人眼花缭乱的表达式。本文开头我把1((10*1)|(01*0))*10*的来源作为一个有趣的问题提出来,因为这个式子恰好不长,让人很难想到这背后藏有一个普适的暴力算法。
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!