【问题标题】:Regular expression search and replace in Sublime TextSublime Text 中的正则表达式搜索和替换
【发布时间】:2014-07-17 06:50:20
【问题描述】:

我在 Sublime Text 中有一个数组,其中美国的每个城市作为值,一个包含州缩写作为键的代码。它看起来有点像这样:

$array = array(
  "United States of America" => array(
        "USAK0001" => "Adak",
        "USAK0002" => "Adak Island",
        "USAK0003" => "Akiachak",
        "USAK0004" => "Akiak",
        "USAK0005" => "Akutan",
        "USAK0006" => "Alakanuk",
        "USAK0007" => "Aleknagik",
        "USAK0008" => "Allakaket",
        "USAL0028" => "Arlington",
        "USAL0029" => "Ashford",
        "USAL0030" => "Ashland",
        "USAL0031" => "Ashville",
        "USAL0032" => "Athens",
        "USAL0033" => "Atmore",
        "USAL0034" => "Attalla",
        "USAL0035" => "Auburn",
        "USAL0036" => "Auburn University",
        "USAL0037" => "Autaugaville",
        "USAL0038" => "Axis",
        "USAL0039" => "Baileyton",
       )
);

我需要做的是搜索和替换,根据在数组键码中找到两个字母的状态缩写,将状态名称附加到值中。

例如,在键中找到“AK”并在值中添加“Alaska”的搜索,所以它们看起来像这样:

    "USAK0001" => "Alaska, Adak",
    "USAK0002" => "Alaska, Adak Island",
    "USAK0003" => "Alaska, Akiachak",
    "USAK0004" => "Alaska, Akiak",
    "USAK0005" => "Alaska, Akutan",
    "USAK0006" => "Alaska, Alakanuk",

每个键都有 8 个字符长,但我什至不知道如何开始尝试在 Sublime Text 中执行此操作。

【问题讨论】:

  • Sublimetext 爱好者可能不同意,但是在编辑器之外这个任务不是更容易解决吗?
  • 如果你有一个从缩写到全名的映射数组,你可以编写一个小的 PHP 脚本来进行合并,然后将内容转储出来供你复制回代码。

标签: regex replace sublimetext2


【解决方案1】:

感谢 nhahtdh,我用 PHP 脚本很容易地合并它。它最终像下面一样简单,不需要正则表达式! (嘘!)

function merge_states_into_cities( $states, $cities ) {

    foreach ( $cities as $key => $array ) {

        foreach ( $array as $code => $city ) {

            foreach ( $states as $abbrv => $state ) {

                if ( strpos( $code, $abbrv, 2 ) ) {
                    echo '"' . $code . '" => "' . $state . ', ' . $city . '",<br>';
                }

            }

        }
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多