例如,
1、如何把下面代码,改为用正则表达式,只用一个replaceAll()来解决呢?"!@##$dslk4032ld--s23%$#^&^*&*(;--qqqq".replace("#", "#").replace("%", "%").replace(";",";").replace("--", "-").replace(" ", " ")2、如何只把exec或eXeC或ExeC和execute或ExEcuTe等等,全部替换为exec或execute,因为exec开头的英文单词还有不少,我也不想这两个命令以外的其他单词替换掉。
1、如何把下面代码,改为用正则表达式,只用一个replaceAll()来解决呢?"!@##$dslk4032ld--s23%$#^&^*&*(;--qqqq".replace("#", "#").replace("%", "%").replace(";",";").replace("--", "-").replace(" ", " ")2、如何只把exec或eXeC或ExeC和execute或ExEcuTe等等,全部替换为exec或execute,因为exec开头的英文单词还有不少,我也不想这两个命令以外的其他单词替换掉。
解决方案 »
- 这个问题能用程序来解决么?
- 跪求高人解答,想从网页直接下载网页上的内容到本地硬盘,写了个java程序,但是有问题~
- 利用網頁來傳送位置執行JAVABEAN並且修改JAVA程式的檔案讀取位置
- 关于jdbtable的问题.
- 关于String.intern()的问题
- 如何得到某年某个月的天数?eg:2003年2月,参数为2003和2
- 一道算法题,求优化
- 为什么不单独创建一个关于android开发的版块呢
- 我在jbuilder中先添加ButtonGroup控件,然后添加3个JRadioButton组件,本这3个组件是排斥的(即一次只能选一个),可运行起来不行,3个能
- 救命!!!在线等待
- 构造里new与声明时new,有什么不同?
- 继续发题玩
第二个问题可以替换 "exec " 为 "exec ",后面都加个空格.然后正则有忽略大小写的方式,可能解决有些字符大写的问题.
我想把textarea传入数据库的内容里面,重复的<p><p>。,全部替换成一个<p>。
我的代码是这样的:
System.out.println("abc<p><p><p>cd>>>>efpppkde<".replaceAll("[<p>]{2,}+", "<p>"));
但结果是:abc<p>cd<p>ef<p>kde<。
也就是说,重复的p和<,都被替换成<p>了。应该如何修改呢?
return Pattern.compile(target.toString(), Pattern.LITERAL).matcher(
this).replaceAll(Matcher.quoteReplacement(replacement.toString()));
}
第二个问题,有思路,也实现了,但是自己感觉写法上不太好,再想想吧,匹配思路是,
开头(?i)exec非字母 或者 非字母(?i)exec非字母 或者 非字母(?i)exec结尾
execute同理
没有找到java匹配一个单词的简单用法.第三个问题是因为你用到了[],[]其中的字符是或的关系,按你的写法意思是只要出现了多个<或>或p都会被替换.
System.out.println("abc<p><p><p>cd>>>>efpppkde<".replaceAll("<p>(?=<p>)", ""));
//我的思路是匹配<p>后面是否还有<p>,有的话将前面的<p>删掉.试过了应该没问题
str = "exec或eXeC或ExeC和execute或ExEcuTe等等Exece,全部替exec或execute";
str = str.replaceAll("(?i)exec(?!\\w)","exec").replaceAll("(?i)execute(?!\\w+)","execute");
System.out.println(str);str = "abc<p><p><p>cd>>>>efpppkde<";
str = str.replaceAll("(<p>)\\1*","<p>");
System.out.println(str);
\\b(?i)execute\\b
Greedy 数量词 、Reluctant 数量词 、Possessive 数量词 是不是可以同时用?写法好像有些不同。
会不会冲突?
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
Reluctant 数量词
X?? X,一次或一次也没有
X*? X,零次或多次
X+? X,一次或多次
X{n}? X,恰好 n 次
X{n,}? X,至少 n 次
X{n,m}? X,至少 n 次,但是不超过 m 次
Possessive 数量词
X?+ X,一次或一次也没有
X*+ X,零次或多次
X++ X,一次或多次
X{n}+ X,恰好 n 次
X{n,}+ X,至少 n 次
X{n,m}+ X,至少 n 次,但是不超过 m 次 呵呵,请恕我愚钝,水平如此,只能按图索骥,对号入座。
这个可以参见Matcher里面的group(int)方法.Greedy 和 Reluctant参考此帖34楼 火龙果大哥的回复不同的数量词应该可以在一个表达式中同时出现不冲突,因为每一个数量词都是对应它之前的字元,所以一个表达式中的不同字元用不同的数量词应该是不会冲突的,自己的理解,还没去验证过.