使用<wbr />构建控制文件以重新格式化源文件

时间:2013-12-09 15:03:01

标签: regex sed awk

我的问题:长期的化学术语,没有任何指导浏览器关于在哪里打破术语。有些术语超过70个字符。

我的目标:在逻辑插入点引入<wbr>

问题示例:

  • 异喹啉四亚甲基亚砜四氯钌(55个字符)

打破化学术语的机会的例子(例如,一个人发表该术语而不是键入术语的方式):

  • <wbr>喹啉
  • <wbr>亚甲基
  • 亚甲基<wbr>亚砜
  • <wbr>

通常(但不总是)iso,tetra和methyl是word_break_opportunities。

一般情况下,我应该如何设置环境:

  • 带有引入word_break机会的“规则”的控制文件
  • 要从控制文件中应用规则的文件

当遇到新的化学术语时,控制文件将使用新规则进行更新。

想要使用:sed,awk,regex。

环境可能如下:

awk rules.awk inputfile.txt > outputfile.txt

准备好进行试验和错误,所以我会理解基本的解释,以便我可以优化控制文件。

我的平台:Windows 7; 64位; 8 GB内存;的GnuWin32; sed 4.1.5.4013; awk 3.1.6.2962

提前谢谢。

1 个答案:

答案 0 :(得分:1)

你的第一份工作是提出一份既清楚又不易破碎的清单。完成后,您可以定义要解释的格式,并围绕它构建一些代码。

例如,我可能会这样:

  1. 打开字符: 异 四
  2. 然后是一些代码:

    for Each openingString {
      if (string.startsWith(openingString)){
        insert wbr after opening string
      }
    }
    

    2。 打开字符,除非后面跟着 ISO | “TOPE |鲍勃” 四| “白”

    for Each openingString {
      if (string.startsWith(openingString)){
        get the next element from the row (after the |, surrounded by ")        
        split around the | 
        for each part
          if (!string.startsWith(part, openingString.length)) {
            insert wbr after openingString
          }
      }
    }
    
    然后从那里建立起来。然而,这是一项非常重要的任务,它需要花费很多时间才能获得有用的东西,但是如果你致力于它的话!第一项任务是决定如何保留这些映射。