0

这不应该是一个难以实现的目标,但是在阅读了关于 regex 的内容之后,我仍然无法理解这一点。我的问题是我需要找到ó (val=='') 之间的字符并将它们替换为\u00F3(第一个 (val==' 是开始序列,第二个是结束)。

这将发生在大约 80 个文件中,因此必须非常精确。每个区块中的角色数量都不同,而且每部电影都有几个替换项——但我想 Sublime 会处理这个问题。

示例中的部分代码

   function Update_qu887() {
     var val = VarQuestion_0010.getValue()
     radio891.objLyr.doc.getElementById("radio891id").checked=(val=='gotówk\u0119, u015Brodki trwa\u0142e, kredyty, lokaty mi\u0119dzybankowe czynne, papiery warto\u015Bciowe oraz inne aktywa')
     radio893.objLyr.doc.getElementById("radio893id").checked=(val=='gotówk\u0119, \u015Brodki trwa\u0142e, kredyty, lokaty mi\u0119dzybankowe czynne, aktywa trwa\u0142e, kredyty hipoteczne')
     radio895.objLyr.doc.getElementById("radio895id").checked=(val=='lokaty mi\u0119dzybankowe czynne, papiery warto\u015Bciowe, inne aktywa, klientów instytucjonalnych, klientów indywidualnych')
     qu887.hasBeenProcessed=false;
    }

你可以看到 ó 需要用此代码\u00F3替换它,这样它才能作为一个整体正常工作。所以最终代码看起来像这样

  function Update_qu887() {
     var val = VarQuestion_0010.getValue()
     radio891.objLyr.doc.getElementById("radio891id").checked=(val=='got\u00F3wk\u0119, u015Brodki trwa\u0142e, kredyty, lokaty mi\u0119dzybankowe czynne, papiery warto\u015Bciowe oraz inne aktywa')
     radio893.objLyr.doc.getElementById("radio893id").checked=(val=='got\u00F3wk\u0119, \u015Brodki trwa\u0142e, kredyty, lokaty mi\u0119dzybankowe czynne, aktywa trwa\u0142e, kredyty hipoteczne')
     radio895.objLyr.doc.getElementById("radio895id").checked=(val=='lokaty mi\u0119dzybankowe czynne, papiery warto\u015Bciowe, inne aktywa, klient\u00F3w instytucjonalnych, klient\u00F3w indywidualnych')
     qu887.hasBeenProcessed=false;
    }
4

1 回答 1

0

以下正则表达式将查找 all(val=='xxx后跟ó并将其替换为(val=='xxx\u00F3(xxx 可以是任何不包含 a 的字符串'

s/(\(val=='[^']*?)ó/\1\\u00F3/g

笔记:

(并且\是正则表达式中的特殊字符,因此它们在正则表达式中以 a 为前缀\

(val=='[^']*?通过将其括在括号中来捕获。捕获的值在替换中用作\1. [^']*?匹配除 . 之外的任何字符序列'

你没有指定你想要的语法。我认为上面的正则表达式将适用于 perl 和 sed。

于 2013-04-26T13:45:46.020 回答