问题描述
我通常通过 stdWrap 搜索并替换为德语引号。
lib content {
20 < styles.content.get
20.select.where = colPos = 0
stdWrap.replacement{
20 {
search = #(")#
replace = |*| „||“ |*|
useRegExp = 1
uSEOptionSplitReplace = 1
}
}
}
从来没有问题,但现在我想将 CO2 替换为 CO2。但是:文件和图像的名称中也包含 CO2。此搜索和替换还会替换路径名和文件名中的字符串。
有谁知道如何将 stdWrap 功能限制为仅文本字段(文本、标题、标题)或排除特定字段(图像、文件)?
感谢您的帮助:)
马丁
解决方法
您可以使用带有前瞻的正则表达式:
lib.content {
20 < styles.content.get
20.select.where = colPos = 0
stdWrap.replacement{
20 {
search = #(?![^<>]*>)(co2)#i
replace = CO<sub>2</sub>
useRegExp = 1
}
}
}
(?![^<>]*>)
将确保 之间的任何文本不会被替换。
仅替换文本(来自例如 bodytext
)将非常复杂,并且可能只能在该特定字段的输出(打字稿或 FLUID)上完成。
但是,如果文本包含指向文件名中包含 CO2
的文件的链接怎么办?.
几乎不可能被抓住。
您可以尝试使用正则表达式仅捕获单词(受空格或标点符号限制,文件名中不使用)。
更好的解决方案意味着编辑需要更多的工作:
不要只替换 CO2
,而是让它像 __CO2__
或 ##CO2##
一样独一无二。
虽然这个字符序列也可能出现在文件名中,但它的概率远低于 CO2