1

私はこのhtmlを持っており、その中の数値を次の間の値に置き換えvalue="##"たい<option>value</option>

例: <option value="16">Accounting</option>、自動的に変更するのに必要な正規表現を知りたい<option value="Accounting">Accounting</option>

このリスト全体にそれを行う予定です。

<option value="16">Accounting A.A.S.</option>
<option value="15">Accounting A.S.</option>
<option value="33">Art Studies</option>
<option value="18">Business Administration A.A.S.</option>
<option value="17">Business Administration A.S.</option>
<option value="20">Computer Network Technician</option>
<option value="21">Computer Support Specialist</option>
<option value="40">Criminal Justice A.A.S.</option>
<option value="39">Criminal Justice A.S.</option>
<option value="37">Criminal Justice: Corrections Certificate</option>
<option value="41">Criminal Justice: Cybersecurity</option>
<option value="42">Criminal Justice: Economic Crime</option>
<option value="43">Criminal Justice: Forensic Investigation</option>
<option value="34">Early Childhood</option>
<option value="22">Fashion Buying & Merchandising</option>
<option value="35">Fine Arts</option>
<option value="23">Health Services Management A.S.</option>
<option value="24">Health Services Management Technology A.A.S.</option>
<option value="92">Human Resource Management A.A.S.</option>
<option value="44">Human Services</option>
<option value="25">International Business</option>
<option value="36">Liberal Arts & Sciences: Childhood Education</option>
<option value="49">Liberal Arts & Sciences: Communication Arts</option>
<option value="50">Liberal Arts & Sciences: General Studies</option>
<option value="52">Liberal Arts & Sciences: Social Science</option>
<option value="51">Liberal Arts and Sciences: Humanities</option>
<option value="26">Marketing A.A.S.</option>
<option value="27">Medical Coder/Transcriptionist Certificate</option>
<option value="45">Music Industry</option>
<option value="28">Paralegal</option>
<option value="46">Photographic Technology</option>
<option value="47">Radio/Television Broadcasting</option>
<option value="91">Science A.S.</option>
<option value="29">Small Business Management</option>
<option value="30">Small Business Management: Certificate</option>
<option value="48">Teaching Assistant: Certificate</option>
<option value="31">Travel & Tourism: Hospitality & Events Management</option>
<option value="32">Website and E-Business Development</option>

編集: textwrangler 内で GREP を使用したい

4

7 に答える 7

3

値の属性を削除するだけです。<option>デフォルトでは、そのコンテンツの値を取ります。

<option value="Accounting">Accounting</option>

と同等です:

<option>Accounting</option>

編集:sedを使用して行うことができます

sed -r s/' value="[0-9]+"'//g
于 2009-02-26T16:01:47.700 に答える
2

私はこれがあなたが望むことを意味すると思います:

<option value="14">Foobar</option>

になるために:

<option value="Foobar">Foobar</option>

もしそうなら、ここにJavascriptがあります。select変数に周囲の<select>タグDOM要素が含まれていると仮定します(例:。) form.nameOfselect

for ( var option : select.options ) {
   option.value = option.text;
}
于 2009-02-26T15:59:35.457 に答える
1

HTMLが整形式の場合、これでうまくいきます。

正規表現:

(?<=<option) value="\d+"

空の文字列に置き換えます。

HTMLでは、value属性が存在しない場合、オプション値は表示されたテキストに自動的にフォールバックします。

于 2009-02-26T16:02:31.207 に答える
1

テキスト エディターで操作を実行することを追加しました。皆さんがph​​pを使いたいと思って書いたのですが、重要だと思うのでここに置いておきます。

とにかく、TextWrangler (または他のテキストエディター)を使用して、置き換えます

<option value="[^"]*">([^<]*)</option>

<option value="\1">\1</option>


あなたは主にphpタグで活動しているので、phpでの解決策を求めていると思います。ただし、この回答をアドバイスから始めさせてください。方法を探している場合は、適切だと思うテクノロジーではなく、目標を述べてください。正規表現は機能しますが、これはsimplexmlではるかに簡単です:

$xml = str_replace("&", "&amp;", $xml); // Fix errors in your XML
$doc = simplexml_load_string($xml);
foreach ($doc->xpath("//option") as $o) {
    $o["value"] = "" . $o;
}
$xml = $doc->asXML();

正規表現の使用を主張する場合は、そうすることができます。

$xml = preg_replace(
    '#<option value="[^"]*">([^<]*)</option>#',
    '<option value="$1">$1</option>', $xml);
于 2009-02-26T16:17:20.500 に答える
1

Linux では:

sed 's|<option value="[^"]*">\([^<>]*\)</option>|<option value="\1">\1</option>|g'
于 2009-02-26T15:59:14.973 に答える
0

これはまだテストしていませんが、jQuery を使用すればうまくいくと思います。

 $('option').each(function(elm) { $(this).val($(this).text()); });
于 2009-02-26T16:18:19.203 に答える
0

もう少し一般的にすることもできますが、オプション タグに他の属性がない場合に機能します。

/(.*")([^"]+)(">)([^<]+)(.*)/

次に、キャプチャされた文字列を次のように置き換えます。

$1$4$3$4$5

サブグループ参照文字としてバックスラッシュを使用している場合は、ドル記号をバックスラッシュに置き換えます。

ヒント: http://gskinner.com/RegExr/に優れた正規表現テスターがオンラインにあります。チェックしてみてください!

于 2009-02-26T16:06:44.020 に答える