java正则替换
Ⅰ java 正则表达式 怎么用正则表达式替换括号里内容的同时去掉圆括号
按照你的要求编写的Java替换程序如下
public class R{
public static void main(String[] args) {
String s = "(我)发来了一条信息。(你好。)";
s=s.replaceAll("(我)","小明");
s=s.replaceAll("(你好。)","晚安。");
System.out.println(s);
}
}
Ⅱ java正则表达式怎么一个个替换匹配的内容
Stringa="我是f_static_000的f_static_001aaaf_static_001";
//正则根据自己需要修改,replaceAll可以使用正则的捕获组功能,$n引用第n个捕获组
/**
replaceAll(regExp,replacement);第一个参数是正则字符串,第二个是替换内容
正则里面有捕获(正则里面用小括号捕获)和引用的功能
*/
a=a.replaceAll("(f_static_\d+)","#[face/png/$1.png]#");
Ⅲ java正则表达式怎么定义只替换中间的字符
可以使用分组来完成,替换字符串中使用$1、$2、$3……可以获取对应组的匹配结果。如果前后的字符串是固定的那更简单,直接在替换的时候写上就好了。
因为String的replaceAll就是使用的正则表达式所以示例直接使用的String的替换,Pattern的替换同理。
publicclassDemo{
publicstaticvoidmain(String[]args){
Stringstr="aa文字1bb哈哈cc测试dx,测试字符串aa1234bb";
//替换aa、bb之间的字符串为"成功"
Stringstr1=str.replaceAll("aa.*?bb","aa成功bb");
System.out.println(str1);
//替换aa、bb之间的字符串为"成功"
Stringstr2=str.replaceAll("(aa).*?(bb)","$1成功$2");
System.out.println(str2);
//替换小写字母之间的字符串为"成功"
Stringstr3=str.replaceAll("([a-z]+).*?([a-z]+)","$1成功$2");
System.out.println(str3);
}
}
Ⅳ java过滤sql关键字的正则替换掉
java过滤sql关键字的正则替换掉方法如下:
可以在C#中这样做:Regexregex = newRegex(@"]*>[^");
stringcleanedHtml = regex.Replace(html, "");
可是我并不想再写个循环去遍历每条记录,然后保存每条记录,我想在数据库中一步到位,而sql只提供了简单的replace函数,这个函数明显不能达到咱的要求,那就去写一个自定义函数吧。
函数源代码如下:CREATE functiondbo.regexReplace
(@source ntext,--原字符串@regexp varchar(1000),--正则表达式@replace varchar(1000),--替换值@globalReplace bit=1,--是否是全局替换@ignoreCase bit=0 --是否忽略大小写)returnS varchar(1000)AS
begin
declare@hr intege
declare@objRegExp integer
declare@result varchar(5000)exec@hr =sp_OACreate'VBScript.RegExp',@objRegExp OUTPUT
IF@hr <>0 begin
exec@hr =sp_OADestroy@objRegExp
returnnullend
exec@hr =sp_OASetProperty@objRegExp,'Pattern',@regexp
IF@hr <>0 begin
exec@hr =sp_OADestroy@objRegExp
returnnullend
exec@hr =sp_OASetProperty@objRegExp,'Global',@globalReplace
IF@hr <>0 begin
exec@hr =sp_OADestroy@objRegExp
returnnullend
exec@hr =sp_OASetProperty@objRegExp,'IgnoreCase',@ignoreCase
IF@hr <>0 begin
exec@hr =sp_OADestroy@objRegExp
returnnullend
exec@hr =sp_OAMethod@objRegExp,'Replace',@result OUTPUT,@source,@replace
IF@hr <>0 begin
exec@hr =sp_OADestroy@objRegExp
returnnullend
exec@hr =sp_OADestroy@objRegExp
IF@hr <>0 begin
returnnullend
return@result
end
需要注意的是,即使写好了这个函数,也并不能马上使用。执行这个函数时可能会出现以下的错误:Msg 15281, Level 16, State 1, Line 1
SQL Server blocked access to procere 'sys.sp_OACreate' of component 'Ole Automation Proceres' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ole Automation Proceres' by using sp_configure. For more information about enabling 'Ole Automation Proceres', see "Surface Area Configuration" in SQL Server Books Online.
这是因为未开启Ole Automation Proceres选项,MSDN中的Ole Automation Proceres选项。执行下面的语句开启这个选项:sp_configure'show advanced options',1;GO
RECONFIGURE;GOsp_configure'Ole Automation Proceres',1;GO
RECONFIGURE;GO
所有的准备工作都已经做好,那就试验一下吧。
Example1:忽略大小写并替换selectdbo.regexReplace(',']*>[^','',1,1)
Example2: 使用贪婪匹配
html代码:
Also Available - Smith & Hogan: Criminal Law Cases & Materials 10th ed
There is, as ever, detailed analysis of the many recent case developments, in particular,
a revision of the chapter dealing with secondary liability and joint enterprise.
调用代码:selectdbo.regexReplace(html,']*>(.|
)*?','',1,1)
Example3:去除html标签selectdbo.regexReplace('
Key Contact:
Mr Jack, Zhou
General Manager
Mr A, Ho
Marketing Director
Overseas Sales
MsWinny, Luo
Sales Manager
Overseas Sales',']*>','',1,0)
Example4:数据库字段值替换updateBooks。
Ⅳ Java 正则表达式 替换字符串中人名
public static void main(String[] args) {
System.out.println("请输入姓名:");
Scanner in=new Scanner(System.in);
String input=in.nextLine();
//保留姓氏
char str2=input.charAt(0);
//截取名字
String str1=input.substring(1);
//用正则表达式替换(包括汉字,数字,大小写字母)
str1=str1.replaceAll("[^x00-xff]|\w", "x");
//输出替换后的名字
System.out.println(str2+str1);
}
Ⅵ java正则表达式多个字符串替换怎样实现
str.replaceAll("[A-Z]+\\d{3}", "hello").replaceAll("[^A-Za-z]", "==");
Ⅶ JAVA 替换特殊字符 的 正则表达式
JAVA替换特殊字符的正则表达式
代码如下:
importjava.util.regex.*;
//表达式对象
Patternp=Pattern.compile("[\'\*\~]");
//创建Matcher对象
Matcherm=p.matcher("Stringstr="t'e*s~t";");
//替换
Stringnewstring=m.replaceAll("[$0]");
效果如下:
正则参考http://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F
Ⅷ java 正则替换 \(
你是要把\(替换成什么,既然没说替换成为什么,我以把出现"\("的地方替换为""为例
String oldStr = "123\\(abc";
System.out.println(oldStr);
String newStr = oldStr.replaceAll("\\\\\\(", "");
System.out.println(newStr);
Ⅸ java使用正则表达式替换字符串
正则改成这个: (?<=\\b)\\W*/r(?=\\b)
Ⅹ JAVA 正则替换字符
String s = "<A class=test id=\"123\" name=张三 tt=kk()>这里不替换 test=no kakaka</A><C class=sss /><B class=a id=\"b\" name=c></B>";
System.out.println(s);
System.out.println("------------------------------------------");
String s1 = s.replaceAll("=([^'\">\\s]+)(\\s|>)","=\"$1\"$2");
System.out.println(s1);
//----------------------------------------
输出的结果是
<A class=test id="123" name=张三 tt=kk()>这里不替换 test=no kakaka</A><C class=sss /><B class=a id="b" name=c></B>
------------------------------------------
<A class="test" id="123" name="张三" tt="kk()">这里不替换 test="no" kakaka</A><C class="sss" /><B class="a" id="b" name="c"></B>
为了非标签内的=号,可能得使用预查找,但测试有点问题就暂时不贴上来了,如果要求不是很严格,这个是可以凑活着用的
//=====和楼主讨论中发现一个奇怪问题,就是[^'\">\\s]不能正确匹配到中文(楼主的jdk1.4就会漏掉中文)。
经过测试,在1.4以及以后的版本,下面这个是可行的
String s1 = s.replaceAll("=(?!['\"])(.*?)(\\s|>)","=\"$1\"$2");