ค้นหาและแทนที่นิพจน์ทั่วไปใน Sublime Text

ฉันมีอาร์เรย์ใน 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 ได้อย่างไร


person Ian    schedule 17.07.2014    source แหล่งที่มา
comment
ผู้ที่ชื่นชอบ Sublimetext อาจไม่เห็นด้วย แต่งานนี้จะไม่ได้รับการแก้ไขง่ายกว่านี้นอกจากตัวแก้ไขหรือไม่   -  person some-non-descript-user    schedule 17.07.2014
comment
หากคุณมีอาร์เรย์ของการแมปตั้งแต่ตัวย่อไปจนถึงชื่อเต็มของรัฐ คุณสามารถเขียนสคริปต์ PHP ขนาดเล็กเพื่อทำการผสาน จากนั้นจึงเทเนื้อหาออกเพื่อให้คุณคัดลอกกลับไปยังโค้ด   -  person nhahtdh    schedule 17.07.2014


คำตอบ (1)


ต้องขอบคุณ nhahtdh ที่ฉันทำสิ่งนี้ได้อย่างง่ายดายด้วยสคริปต์ PHP เพื่อรวมเข้าด้วยกัน สุดท้ายมันก็ง่ายเหมือนด้านล่างนี้ โดยไม่จำเป็นต้องมี regex! (ฮัซซาห์!)

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>';
                }

            }

        }
    }

}
person Ian    schedule 17.07.2014