正则表达式问题 <td><table><tr><td>xx</td></tr></table></td><td>yyy</td>如果我要匹配<td></td>并且中间不包含<table>的正则表达式,该如何写? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你还是turn to XML 解析器吧。 <a>我是程序设计师</a><a>失败是成功之母</a> 如何匹配<a></a>中间的字符串,并且字里没有‘程序设计’四个字呢?我写"<a>(.*?(?:程序设计))</a>"好象还是会匹配出来~ package temp;import java.io.File;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;public class FT { /** * @param args */ public static void main(String[] args) { String s="<td>yyy</td>"; System.out.println(s); Pattern p=Pattern.compile("<td>.*[^(yyy)].*</td>"); Matcher m=p.matcher(s); if(m.matches()){ System.out.println("ok"); }else{ System.out.println("fail"); } } } s = "<td>xyyyyyyx</td>",这种情况,他也成立? ee,是错了,这样好像可以了:package temp;import java.io.File;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;public class FT { /** * @param args */ public static void main(String[] args) { String s="<td>xyyyyyyx</td>"; //String s="<td>yyyasdxx</td>"; System.out.println(s); Pattern p=Pattern.compile("<td>[^(yyy)]*</td>"); Matcher m=p.matcher(s); if(m.matches()){ System.out.println("ok"); }else{ System.out.println("fail"); } } } ("<td>[^(yyy)]*</td>")s="<td>x1111yx</td>"只要有y就不能匹配 String regexp = "<td>.*?(?=yyy)</td>"; String sourceStr = "<td>yyycccyyyx1yy11y1dsaxxxyyy</td>";好象也一个也匹配不了,那(?:)应该如何使用呢? <td>((?!<table).)*?</td>测试页面:(推荐)http://www.regexlab.com/zh/workshop.asp?pat=%3Ctd%3E%28%28%3F%21%3Ctable%29.%29*%3F%3C/td%3E&txt=%3Ctd%3E%3Ctable%3E%3Ctr%3E%3Ctd%3Exx%3C/td%3E%3C/tr%3E%3C/table%3E%3C/td%3E%3Ctd%3Eyyy%3C/td%3E&dlt=0 想到一个办法可以判断是否包含字串,用取反比如要不包含abc的字符串那就:package temp;import java.util.regex.Matcher;import java.util.regex.Pattern;public class A { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Pattern p=Pattern.compile(".*abc.*"); String s="abaabbcasabdac"; Matcher m=p.matcher(s); if(!m.matches()){ System.out.println("不包含abc"); } }} <a>((?!程序设计).)*?</a>测试页面:(推荐)http://www.regexlab.com/zh/workshop.asp?pat=%3Ca%3E%28%28%3F%21%u7A0B%u5E8F%u8BBE%u8BA1%29.%29*%3F%3C/a%3E&txt=%3Ca%3E%u6211%u662F%u7A0B%u5E8F%u8BBE%u8BA1%u5E08%3C/a%3E%0D%0A%3Ca%3E%u5931%u8D25%u662F%u6210%u529F%u4E4B%u6BCD%3C/a%3E&dlt=0 [a|b|c]这种方式只能对字符进行选择,如果要对字符串进行选择呢? 如何获取JTable的模型,然后添加一行空白行 为什么输出会这样子的,能解释下finally是如何执行吗 我们应否尊重不尊重编程的项目经理? 关于正则表达式的问题... 一個取串的問題!有點急! ResultSet怎么得到SQL查询聚合函数的值[可能表达得不清楚] 请问怎么用java画一个三角形?最好是RoundTriangle,谢谢 华为的面试题目,没做出:(大家帮忙看看 我是新手,刚学JAVA,请大虾推荐本书```` 如何获得鼠标在屏幕上的位置? 生成jar的问题 表单内容的传递和获取问题
<a>失败是成功之母</a>
如何匹配<a></a>中间的字符串,并且字里没有‘程序设计’四个字呢?
我写"<a>(.*?(?:程序设计))</a>"好象还是会匹配出来~
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class FT { /**
* @param args
*/
public static void main(String[] args) {
String s="<td>yyy</td>";
System.out.println(s);
Pattern p=Pattern.compile("<td>.*[^(yyy)].*</td>");
Matcher m=p.matcher(s);
if(m.matches()){
System.out.println("ok");
}else{
System.out.println("fail");
}
}
}
package temp;import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class FT { /**
* @param args
*/
public static void main(String[] args) {
String s="<td>xyyyyyyx</td>";
//String s="<td>yyyasdxx</td>";
System.out.println(s);
Pattern p=Pattern.compile("<td>[^(yyy)]*</td>");
Matcher m=p.matcher(s);
if(m.matches()){
System.out.println("ok");
}else{
System.out.println("fail");
}
}
}
只要有y就不能匹配
String sourceStr = "<td>yyycccyyyx1yy11y1dsaxxxyyy</td>";
好象也一个也匹配不了,那(?:)应该如何使用呢?
http://www.regexlab.com/zh/workshop.asp?pat=%3Ctd%3E%28%28%3F%21%3Ctable%29.%29*%3F%3C/td%3E&txt=%3Ctd%3E%3Ctable%3E%3Ctr%3E%3Ctd%3Exx%3C/td%3E%3C/tr%3E%3C/table%3E%3C/td%3E%3Ctd%3Eyyy%3C/td%3E&dlt=0
比如要不包含abc的字符串
那就:
package temp;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class A { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Pattern p=Pattern.compile(".*abc.*");
String s="abaabbcasabdac";
Matcher m=p.matcher(s);
if(!m.matches()){
System.out.println("不包含abc");
}
}}
http://www.regexlab.com/zh/workshop.asp?pat=%3Ca%3E%28%28%3F%21%u7A0B%u5E8F%u8BBE%u8BA1%29.%29*%3F%3C/a%3E&txt=%3Ca%3E%u6211%u662F%u7A0B%u5E8F%u8BBE%u8BA1%u5E08%3C/a%3E%0D%0A%3Ca%3E%u5931%u8D25%u662F%u6210%u529F%u4E4B%u6BCD%3C/a%3E&dlt=0