Вы добавили, что хотите выполнить операцию в текстовом редакторе. Я написал что-то, предполагая, что вы захотите использовать php, и оставлю это здесь, потому что я думаю, что это важно.
В любом случае, используя TextWrangler (или любой другой текстовый редактор) , замените
<option value="[^"]*">([^<]*)</option>
с
<option value="\1">\1</option>
<ч />
Поскольку вы в основном активны в теге php, я предполагаю, что вы запрашиваете решение в php. Однако позвольте мне начать этот ответ с совета: Если вы ищете способ, укажите свою цель, а не технологию, которую вы считаете подходящей. regexps работает, но это гораздо проще в simplexml
$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);