使用正则表达式在<option selected =“”>中选择文本

时间:2018-03-02 21:55:53

标签: regex

我需要使用REGEX在<option value="fad" SELECTED >HERE</option>内选择一些字符串。 我找不到合适的模式,所以我需要帮助。

    <span class="headline txtGrey size12">Birthdate*</span>
                        </td>
                        <td>
                            <select class="title" name="birthmonth">
                                <option value="1" >January</option>
                                <option value="2" >February</option>
                                <option value="3" >March</option>
                                <option value="4" >April</option>
                                <option value="5" >May</option>
                                <option value="6" >June</option>
                                <option value="7" >July</option>
                                <option value="8" >August</option>
                                <option value="9" >September</option>
                                <option value="10" SELECTED>October</option>
                                <option value="11" >November</option>
                                <option value="12" >December</option>
                            </select>
                            <select class="title" name="birthday">
                                <option value="01" >1</option>
                                <option value="02" >2</option>
                                <option value="03" >3</option>
                                <option value="04" >4</option>
                                <option value="05" >5</option>
                                <option value="06" >6</option>
                                <option value="07" >7</option>
                                <option value="08" >8</option>
                                <option value="09" >9</option>
                                <option value="10" Selected>10</option>
                                <option value="11" >11</option>
                                <option value="12" >12</option>
                                <option value="13" >13</option>
                                <option value="14" >14</option>
                                <option value="15" >15</option>
                                <option value="16" >16</option>
                                <option value="17" >17</option>
                                <option value="18" >18</option>
                                <option value="19" >19</option>
                                <option value="20" >20</option>
                                <option value="21" >21</option>
                                <option value="22" >22</option>
                                <option value="23" >23</option>
                                <option value="24" >24</option>
                                <option value="25" >25</option>
                                <option value="26" >26</option>
                                <option value="27" >27</option>
                                <option value="28" >28</option>
                                <option value="29" >29</option>
                                <option value="30" >30</option>
                                <option value="31" >31</option>
                            </select>,
                            <select class="title" size="1" name="birthyear">
                                <option value="2000">2000</option><option value="1999">1999</option><option value="1998">1998</option><option value="1997">1997</option><option value="1996">1996</option><option value="1995">1995</option><option value="1994">1994</option><option value="1993">1993</option><option value="1992">1992</option><option value="1991" Selected>1991</option><option value="1990">1990</option><option value="1989">1989</option><option value="1988">1988</option><option value="1987">1987</option><option value="1986">1986</option><option value="1985">1985</option><option value="1984">1984</option><option value="1983">1983</option><option value="1982">1982</option><option value="1981">1981</option><option value="1980">1980</option><option value="1979">1979</option><option value="1978">1978</option><option value="1977">1977</option><option value="1976">1976</option><option value="1975">1975</option><option value="1974">1974</option><option value="1973">1973</option><option value="1972">1972</option><option value="1971">1971</option><option value="1970">1970</option><option value="1969">1969</option><option value="1968">1968</option><option value="1967">1967</option><option value="1966">1966</option><option value="1965">1965</option><option value="1964">1964</option><option value="1963">1963</option><option value="1962">1962</option><option value="1961">1961</option><option value="1960">1960</option><option value="1959">1959</option><option value="1958">1958</option><option value="1957">1957</option><option value="1956">1956</option><option value="1955">1955</option><option value="1954">1954</option><option value="1953">1953</option><option value="1952">1952</option><option value="1951">1951</option><option value="1950">1950</option><option value="1949">1949</option><option value="1948">1948</option><option value="1947">1947</option><option value="1946">1946</option><option value="1945">1945</option><option value="1944">1944</option><option value="1943">1943</option><option value="1942">1942</option><option value="1941">1941</option><option value="1940">1940</option><option value="1939">1939</option><option value="1938">1938</option><option value="1937">1937</option><option value="1936">1936</option><option value="1935">1935</option><option value="1934">1934</option><option value="1933">1933</option><option value="1932">1932</option><option value="1931">1931</option><option value="1930">1930</option><option value="1929">1929</option><option value="1928">1928</option><option value="1927">1927</option><option value="1926">1926</option><option value="1925">1925</option><option value="1924">1924</option><option value="1923">1923</option><option value="1922">1922</option><option value="1921">1921</option><option value="1920">1920</option><option value="1919">1919</option><option value="1918">1918</option><option value="1917">1917</option><option value="1916">1916</option><option value="1915">1915</option><option value="1914">1914</option><option value="1913">1913</option><option value="1912">1912</option><option value="1911">1911</option><option value="1910">1910</option><option value="1909">1909</option><option value="1908">1908</option><option value="1907">1907</option><option value="1906">1906</option>
                            </select>
                        </td>
                        <td>
                            <span class="headline txtGrey size12">Gender*</span>
                        </td>
                        <td>
                            <select class="title" name="gender">
                                <option value="0" SELECTED>Male</option>
                                <option value="1" >Female</option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <span class="headline txtGrey size12">Ethnicity:*</span>
                        </td>
                        <td>
                            <select class="title" name="ethnicityin" size="1">


                                       <option value="4" >Caucasian</option>
                                                <option value="2" >Black</option>
                                                <option value="6" >Hispanic</option>
                                                <option value="7" >Indian</option>
                                                <option value="8" >Middle Eastern</option>
                                                <option value="9" >Native American</option>
                                                <option value="10" >Asian</option>
                                                <option value="11" Selected>Mixed Race</option>
                                                <option value="12" >Other Ethnicity</option>

                            </select>
                        </td>
                        <td>
                            <span class="headline txtGrey size12">Country*</span>
                        </td>
                        <td>
                            <select id="country" name="country" size="1" cols="20">

                                            <option value="1" >United States</option>

                                                <option value="2" >Afghanistan</option>  
                                                <option value="3" >Algeria</option>
                                                <option value="4" >Argentina</option>
                                                <option value="5" >Australia</option>
                                                <option value="6" >Austria</option>
                                                <option value="7" >Bahamas</option>
                                                <option value="8" >Bangladesh</option>
                                                <option value="9" >Barbados</option>
                                                <option value="10" >Belgium</option>
                                                <option value="11" >Belize</option>
                                                <option value="12" >Bermuda</option>
                                                <option value="13" >Bolivia</option>
                                                <option value="14" >Brazil</option>
                                                <option value="15" >Brunei Darussalam</option>
                                                <option value="16" >Bulgaria</option>
                                                <option value="17"  selected >Canada</option>
                                                <option value="18" >Czech Republic</option>
                                                <option value="19" >Chile</option>
                                                <option value="20" >China</option>
                                                <option value="21" >Colombia</option>
                                                <option value="22" >Costa Rica</option>
                                                <option value="23" >Croatia</option>
                                                <option value="24" >Denmark</option>
                                                <option value="25" >Dominican Republic</option>
                                                <option value="26" >Ecuador</option>
                                                <option value="27" >Egypt</option>
                                                <option value="28" >Estonia</option>
                                                <option value="92" >England</option>
                                                <option value="30" >Finland</option>
                                                <option value="31" >France</option>
                                                <option value="32" >Germany/Deutschland</option>
                                                <option value="33" >Guatemala</option>
                                                <option value="34" >Greece</option>
                                                <option value="35" >Honduras</option>
                                                <option value="36" >Hong Kong</option>
                                                <option value="37" >Hungary</option>
                                                <option value="38" >Iceland</option>
                                                <option value="40" >India</option>
                                                <option value="41" >Indonesia</option>
                                                <option value="42" >Ireland</option>
                                                <option value="43" >Israel</option>
                                                <option value="44" >Italy</option>
                                                <option value="45" >Jamaica</option>
                                                <option value="46" >Japan</option>
                                                <option value="47" >Jordan</option>
                                                <option value="48" >Kenya</option>
                                                <option value="49" >Kuwait</option>
                                                <option value="50" >Latvia</option>
                                                <option value="51" >Lebanon</option>
                                                <option value="52" >Liechtenstein</option>
                                                <option value="53" >Lithuania</option>
                                                <option value="54" >Luxembourg</option>
                                                <option value="55" >Malaysia</option>
                                                <option value="56" >Maldives</option>
                                                <option value="57" >Malta</option>
                                                <option value="58" >Mexico</option>
                                                <option value="59" >Monaco</option>
                                                <option value="60" >Morocco</option>
                                                <option value="61" >Nepal</option>
                                                <option value="62" >Netherlands</option>
                                                <option value="63" >New Zealand</option>
                                                <option value="64" >Norway</option>
                                                <option value="65" >Pakistan</option>
                                                <option value="66" >Panama</option>
                                                <option value="67" >Paraguay</option>
                                                <option value="68" >Peru</option>
                                                <option value="69" >Philippines</option>
                                                <option value="70" >Poland</option>
                                                <option value="71" >Portugal</option>
                                                <option value="72" >Puerto Rico</option>
                                                <option value="73" >Qatar</option>
                                                <option value="74" >Romania</option>
                                                <option value="75" >Russia</option>
                                                <option value="76" >Saudi Arabia</option>
                                                <option value="92" >Scotland</option>
                                                <option value="78" >Singapore</option>
                                                <option value="79" >Slovenia</option>
                                                <option value="80" >South Africa</option>
                                                <option value="81" >South Korea</option>
                                                <option value="82" >Spain</option>
                                                <option value="83" >Sri Lanka</option>
                                                <option value="84" >Sweden</option>
                                                <option value="85" >Switzerland</option>
                                                <option value="86" >Taiwan</option>
                                                <option value="87" >Thailand</option>
                                                <option value="88" >Turkey</option>
                                                <option value="89" >Uganda</option>
                                                <option value="90" >Ukraine</option>
                                                <option value="91" >United Arab Emirates</option>
                                                <option value="92" >United Kingdom</option>
                                                <option value="93" >Venezuela</option>
                                                <option value="94" >Vietnam</option>
                                                <option value="92" >Wales</option>
                                                <option value="97" >U.A.E.</option>
                                                <option value="99" >IRAQ</option>
                                            </select>
                            </select>
                        </td>

我想用正则表达式选择的字符串是 1991年10月10日,男,混血赛

我无法使用SELECTED>([^ <]*)<\/option>,因为这不是我的老板想要选择它们的方式。 我的老板希望通过<select class="title" name="birthmonth">选择它们,然后转到<option selected>Here</option>

1 个答案:

答案 0 :(得分:0)

#!/bin/bash
#                             +   <option value="10" SELECTED>October</option>
#                             +   <option value="10" Selected>10</option>
#                             +   <option value="0" SELECTED>Male</option>
#                             +   <option value="11" Selected>Mixed Race</option>
#                             .   <option value="17"  selected >Canada</option>
#                             +   <option value="2000">2000</option><option value="1992">1992</option><option value="1991" Selected>1991</option><option value="1990">1990</option><option value="1989">1989</option><option value="1906">1906</option>
hasCat () {
    cat=$1
    echo "/<select class=\"title\"[^>]* name=\"$cat\"[^>]*>/,/<\/select>/ s/.*((SELECTED)|((S|s)elected))[^>]*>([^<]+)<\/option>.*/\5/p"
}

cats=(birthmonth birthday birthyear gender ethnicityin)
for cat in ${cats[@]}
do
    sed -r -n "$(hasCat $cat)" birthday.xhtml
done

测试:

./select.sh 
October
10
1991
Male
Mixed Race

这是一个混乱,选择* SELECTED选择 *,由一个或多个空格,类别(因此:猫)别名类别标题带或不带大小,名称前后的大小 - 因此,如果它是有效的xml xmltool可能更合适。

但它有效。

我将html / xhtml / xml中的变体作为证据,它是一个人造文件,而不是程序生成的输出,因此将来可能会有更多变化。