怎么用正则写出不以"ART/"开头的字符串 怎么用正则写出不以"ART/"开头的字符串ART/TTTT 像这个字符串不能匹配 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请以下面这个意思为主,有这样一个字符串<a href=\"/ART/IP%D3%EF%D2%F4.HTM\">IP语音</a>我想对"IP"这个字符串进行替换 , 变成<font>IP</font> 但对双引号中的文字进行替换 改怎么写变成下面这样<a href=\"/ART/IP%D3%EF%D2%F4.HTM\"><font>IP</font>语音</a>public class TestMain { /** * @param args */ public static void main(String[] args) { String s = "<a href=\"/ART/IP%D3%EF%D2%F4.HTM\">IP语音</a>"; System.out.println(s.replaceAll("IP", "<font>IP</font>")); }} 非ART/开始 String result = "ART/TTTT"; String reg = "^(?!ART/).*$"; System.out.println(result.matches(reg)); str = str.replaceAll("IP(?![^<]*>)", "<font>IP</font>"); 这样写怎么不可以public class TestMain { /** * @param args */ public static void main(String[] args) { String s = "<a href=\"http://www.dev.xxxx.com/XXXX/ART/IP%D3%EF%D2%F4.HTM\">IP语音</a>"; System.out.println(s.replaceAll("(?!ART/)(\\w)*IP", "<font>IP</font>")); }} (?!ART/)(\\w)*IP,(?!ART/)代表不以ART开头, \\w*代表中间有任意字符号, 但必须接“IP”但结果不是我想要的 结果为<a href="http://www.dev.xxxx.com/XXXX/ART/<font>IP</font>%D3%EF%D2%F4.HTM"><font>IP</font>语音</a>链接还是被替换了 s.replaceAll("(?<=>)IP", " <font>IP </font>"); 如果没有链接, 对IP也要进行替换但对链接URL中的IP不进行替换 除了URL中出现的字符以外, 其它的都要进行替换 应该是 (?!ART/).* 完整代码:package app;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * * @author cherry */public class Test { public static void main(String[] args) { String regex = "(?!ART/).*"; String input = "ART/TTTT"; Matcher matcher = Pattern.compile(regex).matcher(input); boolean isMathce=matcher.matches(); System.out.println(isMathce); }} public static void main(String[] args) { String str = "<a href=\"/ART/IP%D3%EF%D2%F4.HTM\">IP语音</a>"; str = str.replaceAll("(<a href=\"/ART/IP[^>]+>)(IP)([^<]+</a>)", "$1<font>$2</font>$3"); System.out.println(str); } str=str.replaceAll("(?<!/ART/)(IP)","<font>$1</font>"); str = str.replaceAll("IP(?![^<]*>)", "<font>IP</font>"); String text = "<a href=\"http://www.dev.xxxx.com/XXXX/ART/IP%D3%EF%D2%F4.HTM\">IP语音</a>";System.out.println(text.replaceAll("(?<!ART/)IP", "<font>IP</font>"));// so easy// output :// <a href="http://www.dev.xxxx.com/XXXX/ART/IP%D3%EF%D2%F4.HTM"><font>IP</font>语音</a> 关于如何把有限的精力投入到无限的java知识学习中去 【竞赛】排序算法的最快实现-继续 大侠 近来 帮帮忙! (初学问题) 急啊!!有那位高手知道怎么样用sevlet实现对数据库的增删改查操作,尽量能给我提供了例子,不用框架,谢谢了啊 将数据导成DBF格式.. 字符串标准答案与所填答案的比较 一个简单的数组问题,望高手指点一二。 JAVA的SOCKET编程的一些疑问,谢谢! 给1100分! java调用动态库异常 UnsatisfiedLinkError. 关于文档创建 收集Swap函数不同实现方法
变成下面这样
<a href=\"/ART/IP%D3%EF%D2%F4.HTM\"><font>IP</font>语音</a>
public class TestMain { /**
* @param args
*/
public static void main(String[] args) {
String s = "<a href=\"/ART/IP%D3%EF%D2%F4.HTM\">IP语音</a>";
System.out.println(s.replaceAll("IP", "<font>IP</font>")); }}
String result = "ART/TTTT";
String reg = "^(?!ART/).*$";
System.out.println(result.matches(reg));
str = str.replaceAll("IP(?![^<]*>)", "<font>IP</font>");
* @param args
*/
public static void main(String[] args) {
String s = "<a href=\"http://www.dev.xxxx.com/XXXX/ART/IP%D3%EF%D2%F4.HTM\">IP语音</a>";
System.out.println(s.replaceAll("(?!ART/)(\\w)*IP", "<font>IP</font>"));
}}
链接还是被替换了
但对链接URL中的IP不进行替换
完整代码:package app;import java.util.regex.Matcher;
import java.util.regex.Pattern;/**
*
* @author cherry
*/
public class Test { public static void main(String[] args) {
String regex = "(?!ART/).*";
String input = "ART/TTTT";
Matcher matcher = Pattern.compile(regex).matcher(input);
boolean isMathce=matcher.matches();
System.out.println(isMathce);
}
}
public static void main(String[] args) {
String str = "<a href=\"/ART/IP%D3%EF%D2%F4.HTM\">IP语音</a>";
str = str.replaceAll("(<a href=\"/ART/IP[^>]+>)(IP)([^<]+</a>)", "$1<font>$2</font>$3");
System.out.println(str);
}
String text = "<a href=\"http://www.dev.xxxx.com/XXXX/ART/IP%D3%EF%D2%F4.HTM\">IP语音</a>";
System.out.println(text.replaceAll("(?<!ART/)IP", "<font>IP</font>"));
// so easy
// output :
// <a href="http://www.dev.xxxx.com/XXXX/ART/IP%D3%EF%D2%F4.HTM"><font>IP</font>语音</a>