我有这个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
答案 0 :(得分:3)
只需删除值属性即可。默认情况下,<option>
会获取其内容的值。
<option value="Accounting">Accounting</option>
相当于:
<option>Accounting</option>
编辑:使用sed即可
sed -r s/' value="[0-9]+"'//g
答案 1 :(得分: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;
}
答案 2 :(得分:1)
在Linux下:
sed 's|<option value="[^"]*">\([^<>]*\)</option>|<option value="\1">\1</option>|g'
答案 3 :(得分:1)
如果您的HTML格式正确,这将解决问题:
正则表达式:
(?<=<option) value="\d+"
替换为空字符串。
在HTML中,如果没有值属性,选项值将自动回退到显示的文本。
答案 4 :(得分:1)
您已添加了要在文本编辑器中执行操作的内容。我写了一些假设你想要使用php的东西,我会让它站在这里,因为我觉得这很重要。
无论如何,使用 TextWrangler(或任何其他文本编辑器),替换
<option value="[^"]*">([^<]*)</option>
带
<option value="\1">\1</option>
<小时/> 由于你主要在php标签中活跃,我假设你在php中要求一个解决方案。但是,让我从一个建议开始这个答案:如果你正在寻找一种方法,说明你的目标,而不是你认为合适的技术。 regexps工作,但这在{{3 }}:
$xml = str_replace("&", "&", $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);
答案 5 :(得分:0)
它可以更通用,但是当选项标签中没有其他属性时它可以工作:
/(.*")([^"]+)(">)([^<]+)(.*)/
然后用以下代码替换捕获的字符串:
$1$4$3$4$5
如果您使用反斜杠作为子组引用字符,请用反斜杠替换美元符号。
提示:http://gskinner.com/RegExr/在线有一个很棒的正则表达式测试人员,请查看!
答案 6 :(得分:0)
我没有对此进行过测试,但我相信这会使用jQuery。
$('option').each(function(elm) { $(this).val($(this).text()); });