java正則替換,java正則替換指定字符

本文目錄一覽:

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 procedure ‘sys.sp_OACreate’ of component ‘Ole Automation Procedures’ 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 Procedures’ by using sp_configure. For more information about enabling ‘Ole Automation Procedures’, see “Surface Area Configuration” in SQL Server Books Online.

這是因為未開啟Ole Automation Procedures選項,MSDN中的Ole Automation Procedures選項。執行下面的語句開啟這個選項:sp_configure’show advanced options’,1;GO

RECONFIGURE;GOsp_configure’Ole Automation Procedures’,1;GO

RECONFIGURE;GO

所有的準備工作都已經做好,那就試驗一下吧。

Example1:忽略大小寫並替換selectdbo.regexReplace(‘123456′,’]*[^’,”,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,’]*(.|\n)*?’,”,1,1)

Example3:去除html標籤selectdbo.regexReplace(‘

Key Contact:

Mr Jack, Zhou

General Manager

Mr Adu, Ho

Marketing Director

Overseas Sales

MsWinny, Luo

Sales Manager

Overseas Sales’,’]*’,”,1,0)

Example4:數據庫字段值替換updateBooks。

java 正則替換同一類字符串

Pattern p = Pattern.compile(“a p=\”(\\S+)\” pp=\”(\\S+)\”(\\S+)/a”);

String[] strs = {“a p=\”變量1\” pp=\”變量2\”表達式1/a”,

“a p=\”變量3\” pp=\”變量4\”表達式2/a”,

“a p=\”變量5\” pp=\”變量6\”表達式3/a”};

for(String str : strs) {

Matcher m = p.matcher(str);

if(m.matches()) {

String sub = String.format(“x m=\”%s!=null\” %s %s/x”,

    m.group(2), m.group(1), m.group(3));

System.out.println(sub);

}

}

JAVA 正則替換字符

String s = “A class=test id=\”123\” name=張三 tt=kk()這裡不替換 test=no kakaka/AC 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/AC class=sss /B class=a id=”b” name=c/B

——————————————

A class=”test” id=”123″ name=”張三” tt=”kk()”這裡不替換 test=”no” kakaka/AC class=”sss” /B class=”a” id=”b” name=”c”/B

為了非標籤內的=號,可能得使用預查找,但測試有點問題就暫時不貼上來了,如果要求不是很嚴格,這個是可以湊活着用的

//=====和樓主討論中發現一個奇怪問題,就是[^’\”\\s]不能正確匹配到中文(樓主的jdk1.4就會漏掉中文)。

經過測試,在1.4以及以後的版本,下面這個是可行的

String s1 = s.replaceAll(“=(?![‘\”])(.*?)(\\s|)”,”=\”$1\”$2″);

java正則表達式怎麼定義只替換中間的字符

可以使用分組來完成,替換字符串中使用$1、$2、$3……可以獲取對應組的匹配結果。如果前後的字符串是固定的那更簡單,直接在替換的時候寫上就好了。

因為String的replaceAll就是使用的正則表達式所以示例直接使用的String的替換,Pattern的替換同理。

public class Demo {

    public static void main(String[] args) {

        String str = “aa文字1bb哈哈cc測試dx,測試字符串aa1234bb”;

        // 替換aa、bb之間的字符串為 “成功”

        String str1 = str.replaceAll(“aa.*?bb”, “aa成功bb”);

        System.out.println(str1);

        // 替換aa、bb之間的字符串為 “成功”

        String str2 = str.replaceAll(“(aa).*?(bb)”, “$1成功$2”);

        System.out.println(str2);

        // 替換小寫字母之間的字符串為 “成功”

        String str3 = str.replaceAll(“([a-z]+).*?([a-z]+)”, “$1成功$2”);

        System.out.println(str3);

    }

}

java 正則表達式 怎麼用正則表達式替換括號里內容的同時去掉圓括號?

按照你的要求編寫的Java替換程序如下

public class R{

 public static void main(String[] args) {

  String s = “(我)發來了一條信息。(你好。)”;

  s=s.replaceAll(“(我)”,”小明”);

  s=s.replaceAll(“(你好。)”,”晚安。”);

  System.out.println(s);

 }

}

java 正則替換 \(

你是要把\(替換成什麼,既然沒說替換成為什麼,我以把出現”\(“的地方替換為””為例

String oldStr = “123\\(abc”;

System.out.println(oldStr);

String newStr = oldStr.replaceAll(“\\\\\\(“, “”);

System.out.println(newStr);

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/240083.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:19
下一篇 2024-12-12 12:19

相關推薦

  • 英語年齡用連字符號(Hyphenation for English Age)

    英語年齡通常使用連字符號表示,比如 “five-year-old boy”。本文將從多個方面探討英語年齡的連字符使用問題。 一、英語年齡的表達方式 英語中表…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python字符轉列表指南

    Python是一個極為流行的腳本語言,在數據處理、數據分析、人工智能等領域廣泛應用。在很多場景下需要將字符串轉換為列表,以便於操作和處理,本篇文章將從多個方面對Python字符轉列…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論