首页 > 解决方案 > TYPOSCRIPT:stdWrap.replacement 仅在文本字段中

问题描述

我通常通过 stdWrap 搜索并替换为德语引号。

lib content {
    20 < styles.content.get
    20.select.where = colPos = 0
    stdWrap.replacement{
         20 {
            search = #(&quot;)#
            replace = |*| &bdquo;||&ldquo; |*|
            useRegExp = 1
            useOptionSplitReplace = 1
        }
    }
}

从来没有问题,但现在我想将 CO2 替换为 CO 2。但是:文件和图像的名称中也包含 CO2。这种搜索和替换还会替换路径名和文件名中的字符串。

有谁知道,如何将 stdWrap 函数限制为仅文本字段(文本、标题、标题)或排除特定字段(图像、文件)?

感谢帮助 :)

马丁

标签: textreplacetypo3fieldtyposcript

解决方案


您可以为此使用带有前瞻的正则表达式:

lib.content {
  20 < styles.content.get
  20.select.where = colPos = 0
  stdWrap.replacement{
    20 {
      search = #(?![^<>]*>)(co2)#i
      replace = CO<sub>2</sub>
      useRegExp = 1
    }
  }
}

(?![^<>]*>)将确保不会替换 < 和 > 之间的任何文本。


推荐阅读