怎么用正则写出不以"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> 字符串池跟线程有关吗?。 问下我遇到的这个问题是什么原因如何解决? 请问哪里能下载到在windows下使用的emacs版本? 问y 关于java import的问题(在线等) 用JAVA编的小应用程序,怎样能变成.exe文件 请教 JSplitPane 两个问题 请教如何理解 j2se和jdk 关于synchronized的问题 关于文件删除重建! jbuilder中的查找怎么这么不好用呀 关于文档创建 收集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>