源:
<select name="nnsort_id" οnchange="form1.Clxh.value=this.value;">
<option value="">---汽车型号---</option><option value="悍马 H2">悍马 H2</option><option value="悍马 H2 SUT">悍马 H2 SUT</option><option value="悍马 H3">悍马 H3</option><option value="悍马H1">悍马H1</option></select>
目标:
悍马 H2,悍马 H2 SUT,悍马 H3,悍马H1
Java方式:
package regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HtmlOption {
public static void main(String[] args){
String str_o="<option value=>---汽车型号---</option><option value=伊兰特1.6>伊兰特1.6</option><option value=伊兰特1.8>伊兰特1.8</option><option value=伊兰特 1.8 手动 豪华型>伊兰特 1.8 手动 豪华型</option><option value=伊兰特 1.8 自动 豪华型>伊兰特 1.8 自动 豪华型</option><option value=伊兰特 1.6 自动 豪华型>伊兰特 1.6 自动 豪华型</option><option value=伊兰特 1.6 手动 豪华型>伊兰特 1.6 手动 豪华型</option><option value=伊兰特 1.6 自动 标准型>伊兰特 1.6 自动 标准型</option><option value=伊兰特 1.6 自动 舒适型>伊兰特 1.6 自动 舒适型</option><option value=伊兰特 1.6 手动 舒适型>伊兰特 1.6 手动 舒适型</option></select>";
String string=str_o.replaceAll("</select>", "");
string=string.replaceAll("<option value=>---汽车型号---</option>", "");
//去掉左边的<option ..
Pattern pattern = Pattern.compile("<option.+?>", Pattern.DOTALL);
Matcher matcher = pattern.matcher(string);
string = matcher.replaceAll(",");
//去掉右边的</option>
/**
* 没必要,replacement为空值即可
*/
/* Pattern pattern2 = Pattern.compile("</option>", Pattern.DOTALL);
Matcher matcher2 = pattern2.matcher(string);
string = matcher2.replaceAll("");*/
string=string.replaceAll("</option>", "");
//去掉第一个,
Pattern pattern3 = Pattern.compile(",", Pattern.DOTALL);
Matcher matcher3 = pattern3.matcher(string);
string = matcher3.replaceFirst("");
System.out.println(string);
}
}
很臃肿。哎。
VIM方式:
录制宏@a
写道
去掉开头 :%s/<select.*/
去掉空行 :g/^\s*$/d
去掉第三行的空格 :%s/\s\s/
去掉品牌这个opt :%s/<option value=.*---<\/option>/
去掉左option :%s/<option value="[^<]*">//gc
去掉右option-转, :%s/<\/option>/,/gc
去末尾,</select> :%s/,<\/select>/
去掉空行 :g/^\s*$/d
去掉第三行的空格 :%s/\s\s/
去掉品牌这个opt :%s/<option value=.*---<\/option>/
去掉左option :%s/<option value="[^<]*">//gc
去掉右option-转, :%s/<\/option>/,/gc
去末尾,</select> :%s/,<\/select>/