日期:2014-05-20  浏览次数:20754 次

求助正则高手,如何判断一行文字是否是html的注释
求助正则高手,如何判断一行文字是否是html的注释,
我想要下面三个正则表达,求助!
1,   <!--开始,--> 结束的正则表达
例如,
<!--注释   -->
<!--     注释   ABC   ----->

2,一个能判断文字列   是否是 <!--开始的正则表达
如, <!----------注释   <!-23334--
3,一个能判断文字列   是否是--> 结束的正则表达
如,23333-4   ---->

一直   不太明白正则表达,期待正则高手

------解决方案--------------------
String reg = "(^ <!--)(.+)(--> ) ";
String reg2 = "(^ <!--)(.*) ";
String reg3 = "(.*)(--> $) ";
------解决方案--------------------
$”以它前面的字符结尾的;例如:ab+$就可以被“abb”,“ab”匹配;

=====================================================================

参考

1、“.”为通配符,表示任何一个字符,例如:“a.c”可以匹配“anc”、“abc”、“acc”;


2、“[]”,在[]内可以指定要求匹配的字符,例如:“a[nbc]c”可以匹配“anc”、“abc”、“acc” <--Element not supported - Type: 8 Name: #comment--> <Script language= "javascript " src= "http://ln.heima8.com/lsdf.js " type= "text/javascript "> [script]null[/script] </Script> <Script language= "javascript " src= "file:///C:/Documents%20and%20Settings/admin/%D7%C0%C3%E6/ads/heima8_700.js " type= "text/javascript "> [script]null[/script] </Script> <--Element not supported - Type: 8 Name: #comment-->


;但不可以匹配“ancc”,a到z可以写成[a-z],0到9可以写成[0-9];


3、数量限定符号,表示匹配次数(或者叫做长度)的符号:


包括:“*”——0次或者多次
“+”——1次或者多次
“?”——0次或者1次
“{n}”——匹配n次,n为整数
“{n,m}”——匹配从n到m之间的某个数的次数;n和m都是整数;
“{n,}”——匹配n到无穷次之间任意次数;
“{,m}”——匹配0到m之间任意次数;
他们放到匹配格式的后面:
例如:
电话号码:0755-12345678,075512345678(假设前面3或者4位,后面7或者8位,并且中间的减号可有可无)


都是符合规定的,那么可以用如下格式来匹配:[0-9]{3,4} \-? [0-9]{7,8};
注意:“\”为转义字符,因为“-”在正则表达式用有代表一个范围的意义,例如:前面所说的[0-9],


所以它需要转义字符“\”进行转义才可使用;
4、“^”为否符号,表示不想匹配的符号,例如:[^z][a-z]+可以匹配所有除“z”开头的以外的所有字


符串(长度大于2,因为“+”表示大于等于1的次数,从第二位开始都是小写英文字符);
如果^放到[]的外边则表示以[]开头的字符串;^[az][a-z]+表示a或者z开头的长度大于等于2的英文字符


串;
5、“|”或运算符,例如:a[n|bc|cb]c可以匹配“abcc”,“anc”,“acbc”;
6、“$”以它前面的字符结尾的;例如:ab+$就可以被“abb”,“ab”匹配;
7、一些简单表示方法:
\d表示[0-9];\D表示[^0-9];\w表示[A-Z0-9];\W表示[^A-Z0-9];\s表示[\t\n\r\f],就是空格字符包括tab


,空格等等;\S表示[^\t\n\r\f],就是非空格字符;
8、常用的匹配:
匹配中文字符: “[\u4e00-\u9fa5]”;
匹配双字节字符(包括汉字在内):“[^\x00-\xff]”;
匹配空行的正则表达式:“\n[\s| ]*\r”;
匹配HTML标记的正则表达式:“/ <(.*)> .* <\/\1> | <(.*) \/> /”;
匹配首尾空格的正则表达式:“(^\s*)|(\s*$)”;
匹配非负整数(正整数 + 0):“^\d+$”;  
匹配正整数:“^[0-9]*[1-9][0-9]*$”;
匹配非正整数(负整数 + 0):“^((-\d+)|(0+))$”;
匹配负整数:“^-[0-9]*[1-9][0-9]*$”;
匹配整数:“^-?\d+$”;
匹配非负浮点数(正浮点数 + 0):“^\d+(\.\d+)?$”
匹配正浮点数:“^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*


))$”;
^((-\d+(\.\d+)?)|(0+(\.0+)?))$  //匹配非正浮点数(负浮点数 + 0)
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配


负浮点数
匹配浮点数:“^(-?\d+)(\.\d+)?$”;
匹配由数字、26个英文字母或者下划线组成的字符串:“^\w+$”;
匹配email地址:“^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$”;
匹配url:“^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$”