在翻译的文档中,有大量日期类型为12.05.2011
。我需要用月份名称替换月份数字(中间),如-May-
,这将给12-May-2011
。这是必要的,因为有些读者可能错误地认为月份编号是在开头而不是在中间。SDL Trados中的正则表达式搜索(翻译工具)
出于某种原因,我想出了正则表达式^(?<=[\d]{2})\.05\.(?=[\d]{2,4})$
,只有当我删除^
和$
符号时才起作用。这是为什么?
在下图中,正则表达式无法选择.05.
,除非我删除那些^
和$
。
P.S.我想搜索填充整个翻译部分的字符串,因为偶然可能会有一些非日期字符串,例如某些生产代码,2135.05.2011.462
,而我的搜索替换可能错误地将-May-
放在那里。^_ ^那会破坏我的翻译。
直到我设法使用^...$
那里,我会用它作为粗略的方法来确保至少天数在01-39范围内:(?<=[0-3][0-9])\.05\.(?=20{0,1}[\d]{2})
。这也确保年份数字(如果它有4位数字)具有20
作为其中前两个数字(因为在我的文档中日期通常来自21世纪)。
谢谢你,但我想寻找填补整个翻译区段列,因为有可能会偶然出现一些非日期字符串,比方说,一些生产代码,'2135.05.2011.462'和我的搜索和替换可能会错误地将' - 可以''放在那里。^_ ^这会破坏我的翻译。 – CopperKettle
因为翻译段不包含非空白字符,所以'\ s'的正则表达式在我的情况下无法正常工作。 – CopperKettle
@CopperKettle我编辑了答案。给我失败的案例,并在我编辑的答案中尝试新的正则表达式。 –