在文件中查找并替换Sublime正则表达式

时间:2013-04-26 10:50:34

标签: regex replace sublimetext2

这不应该是一个难以实现的目标,但在阅读了有关正则表达式之后,我仍然无法解决这个问题。我的问题是我需要找到ó 之间的字符 (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;
    }

1 个答案:

答案 0 :(得分:0)

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

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

注意:

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

通过将其括在括号中来捕获

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

您没有指定所需的语法。我认为上面的正则表达式适用于perl和sed。