导航:首页 > 编程语言 > javaregexreplace

javaregexreplace

发布时间:2024-03-06 07:03:29

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 字符串替换

importjava.util.HashMap;
importjava.util.Map;
importjava.util.Map.Entry;

publicclassDemo{

publicstaticvoidmain(String[]args){
print("/user/{method}/{userid}.jsp","/user/update/123.jsp");
}

privatestaticvoidprint(Stringtext,Stringtext2){
Map<String,String>map=findMap(text,text2);
for(Entry<String,String>entry:map.entrySet()){
System.out.println(entry.getKey()+":"+entry.getValue());
}
}

publicstaticMap<String,String>findMap(Stringtext,Stringtext2){
Map<String,String>map=newHashMap();
String[]split=text.split("/");
String[]split2=text2.split("/");
if(split.length!=split2.length){
returnnull;
}
for(inti=0;i<split.length;i++){
if(!split[i].equals(split2[i])){
removePrefix(split,split2,i);
removeSuffix(split,split2,i);
if(split[i].matches("\{.*\}")){
split[i]=split[i].substring(1,split[i].length()-1);
map.put(split[i],split2[i]);
}
}
}
returnmap;
}

privatestaticvoidremovePrefix(String[]arr,String[]arr2,inti){
for(intj=1;j<arr[i].length();j++){
if(!arr2[i].startsWith(arr[i].substring(0,j))){
arr[i]=arr[i].substring(j-1);
arr2[i]=arr2[i].substring(j-1);
break;
}
}
}

privatestaticvoidremoveSuffix(String[]arr,String[]arr2,inti){
for(intj=arr[i].length();j>0;j--){
if(!arr2[i].endsWith(arr[i].substring(j))){
intlength=arr2[i].length()-arr[i].length();
arr[i]=arr[i].substring(0,j+1);
arr2[i]=arr2[i].substring(0,j+1+length);
break;
}
}
}

}
//程序输出
userid:123
method:update

程序思路:

先按照/把字符串分成几分,然后找到不一致的,掐头去尾,就得到结果了。

Ⅲ java 将"\"替换为"/"的正则表达式是什么比如我要将"E:\\Media\\" 替换为E:/Media/,

例如:
String s="E:\\Media\\";//现实路径是E:\Media\
//replace(regex,s);
String str=s.replaceAll("\\\\","/");
第一个参数是正则表达式
如果你想表示符号\(反斜杠)内 你需要用字符串容"\\"因为转义字符的关系
如果你想表示符号\(反斜杠) 你需要用正则表达式"\\\\"因为转义字符的关系
并且正则表达式中的"\"有专门的功能,如"\d"表示数字。

Ⅳ JAVA中REPLACE和REPLACEALL的区别 以及一些特殊字符替换

replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);

replaceAll的参数是regex,即基于规则表达式的替换,比如:可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;

相同点:都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串;

不同点:replaceAll支持正则表达式,因此会对参数进行解析(两个参数均是),如replaceAll("\\d", "*"),而replace则不会,replace("\\d","*")就是替换"\\d"的字符串,而不会解析为正则。

另外还有一个不同点:“\”在Java中是一个转义字符,所以需要用两个代表一个。

例如System.out.println( "\\" ) ;只打印出一个"\"。但是“\”也是正则表达式中的转义字符,需要用两个代表一个。所以:\\\\被java转换成\\,\\又被正则表达式转换成\,因此用replaceAll替换“\”为"\\",就要用replaceAll("\\\\","\\\\\\\\"),而replace则replace("\\","\\\\")。

如果只想替换第一次出现的,可以使用replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串。

Ⅳ JAVA里,如何匹配一个多位数(正则表达式)

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public final class Second {

public static void main( String[] args )
{
String regex = "[0-9]{1,}";
String str = " 33 444 5555";
Pattern pat = Pattern.compile(regex);
Matcher matcher = pat.matcher(str);
int i=0;
while (matcher.find()) {
String temp = str.substring(matcher.start()+7*i,matcher.end()+7*i);
str=str.replaceAll(temp, "<b>"+temp+"</b>");
i++;
}
System.out.println(str);

}
}

Ⅵ Java如何去除字串中的空格、回车、换行符、制表符

Java如何去除字串中的空格、回车、换行符、制表符 笨方法:String s = 你要去除的字串;
1.去除空格:s = s.replace(‘\\s’,);
2.去除回车:s = s.replace(‘
’,);
这样也可以把空格和回车去掉,其他也可以照这样做。
注:
回车(\u000a)
\t 水平制表符(\u0009)
\s 空格(\u0008)
换行 将游标移动到下一行第一格 相当于平时用的回车 \r 回车 将游标移动到当前行第一格}

import java.util.regex.Matcher;import java.util.regex.Pattern;public class StringUtils { /** *正则 */ public static String replaceBlank(String str) { String dest = ""; if (str!=null) { Pattern p = Pattern.pile("\\s*|\t|\r|\n"); Matcher m = p.matcher(str); dest = m.replaceAll(""); } return dest; } public static void main(String[] args) { System.out.println(StringUtils.replaceBlank("just do it!")); } /*----------------------------------- 笨方法:String s = "你要去除的字串"; 1.去除空格:s = s.replace('\\s',''); 2.去除回车:s = s.replace('\n',''); 这样也可以把空格和回车去掉,其他也可以照这样做。 注:\n 回车(\u000a) \t 水平制表符(\u0009) \s 空格(\u0008) \r 换行(\u000d)*/}

c#如何去除字串中的空格,回车,换行符,制表符
string l_strResult = 你的字串.Replace("\n", "").Replace(" ","").Replace("\t","").Replace("\r","");
关于在字串中如何去除回车和制表符的搜寻推荐
正则表示式没学过? import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringUtils { /** *正则 */ public s

我们使用过的方法是写一个过滤这些制表符的工具
C#如何去掉字串中的换行符
从资料库中返回json格式的资料,但由于资料库中的资料中有换行符,导致返回的json资料错误。
【原因分析】
用for回圈语句来分析出错栏位字串中每个字元的ASCII码,可以看出存在值分别为13、10的两个字元,造成换行,导致json格式出错。
【解决方法】
用C#中string的replace函式替换掉这两个字元,下面是部分程式码供参考。
jsonStr.Append('subject':' +cleanString(rd.GetString(1)) + ',);
jsonStr.Append('answer':' + cleanString(rd.GetString(2)) + ',);
private string cleanString(string newStr){
如何去掉字串前空白符?空格符,TAB制表符,回车ASCII码各为多少
在objective-c中,如何去掉一个string 的前后的空格字元或某个特定字元呢?
如@ “ abc 123 ”字串前后有空格,该如何去掉?
使用nsstring 的例项方法 :可以解决该问题。
方法如下:
C程式码 收藏程式码
[@" abc 123 " :[NSCharacterSet whitespaceCharacterSet]];

NSString *newString = [oldString :[NSCharacterSet ]];
NSString 中该方法说明如下:
:
Returns a new string made by removing from both ends of the receiver characters contained in a given character set.
- (NSString *):(NSCharacterSet *)set
Parameters
set
A character set containing the characters to remove from the receiver. set must not be nil .
Return Value
A new string made by removing from both ends of the receiver characters contained in set . If the receiver is posed entirely of characters from set , the empty string is returned.
这是典型的其他语言中trim 方法。我要问的是,如何去掉最左边的空格?又该如何去掉最右边的空格?
在NSString 的类中没有提供实现这类需求的方法,我们只能手工去新增这些方法。

C程式码 收藏程式码
@interface NSString (TrimmingAdditions)
- (NSString *):(NSCharacterSet *)characterSet ;
- (NSString *):(NSCharacterSet *)characterSet ;
@end

@implementation NSString (TrimmingAdditions)

- (NSString *):(NSCharacterSet *)characterSet {
NSUInteger location = 0;
NSUInteger length = [self length];
unichar charBuffer[length];
[self getCharacters:charBuffer];

for (location; location < length; location++) {
if (![characterSet characterIsMember:charBuffer[location]]) {
break;
}
}

return [self substringWithRange:NSMakeRange(location, length - location)];
}

- (NSString *):(NSCharacterSet *)characterSet {
NSUInteger location = 0;
NSUInteger length = [self length];
unichar charBuffer[length];
[self getCharacters:charBuffer];

for (length; length > 0; length--) {
if (![characterSet characterIsMember:charBuffer[length - 1]]) {
break;
}
}

return [self substringWithRange:NSMakeRange(location, length - location)];
}

@end
word如何去除回车符和换行符
一、word去除回车符(段落标记)的方法,以word2007为例:
1、单击word2007文件左上角的“Office按钮”,单击“word选项”。
2、单击“显示”选项,取消勾选“始终在萤幕上显示这些格式标记”下方的“段落标记”复选框,单击“确定”。
3、单击“开始”选单,单击工具栏中的“显示/隐藏编辑标记”按钮使段落标记不显示。
二、word去除(手动)换行符的方法,以word2007为例:
1、开启word文件,单击“开始”选单下的“替换”命令,在弹出的“查询和替换”对话方块中单击“查询内容”右侧的输入框,单击“更多”按钮。
2、单击“特殊格式”按钮,单击“手动换行符”命令。
3、在“查询和替换”对话方块中单击“替换为”右侧的输入框,单击“全部替换”按钮。
4、在弹出的提示框中单击“确定”按钮。

可以通过以下方法解决问题:
1、去不掉的,列印的时候不显示。

阅读全文

与javaregexreplace相关的资料

热点内容
linux端口镜像 浏览:820
iphone5屏幕清尘 浏览:157
机顶盒密码怎么改 浏览:672
w7系统下载32位教程 浏览:618
pcb文件包括哪些内容 浏览:598
g00文件 浏览:607
用bat程序删除程序 浏览:516
dnf鬼泣90版本打安图恩 浏览:668
245倒角编程怎么计算 浏览:599
可以买生活用品的app有哪些 浏览:175
cad在c盘产生的文件夹 浏览:541
联想手机解锁工具 浏览:696
瑞银3887win10 浏览:833
学网络编程哪个好 浏览:805
手机vmos导入的文件在哪里 浏览:115
苹果手机可以把文件传到华为吗 浏览:63
海川化工下载的文件默认到哪里 浏览:343
学唱粤语歌app 浏览:975
qq游戏生死狙击玩不了 浏览:120
win10邮件不显示图片 浏览:922

友情链接