最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一篇文章帶你了解Python和Java的正則表達(dá)式對比

 更新時間:2021年09月14日 15:14:16   作者:8su  
正則表達(dá)式有元字符及不同組合來構(gòu)成,通過巧妙的構(gòu)造正則表達(dá)式可以匹配任意字符串,并完成復(fù)雜的字符串處理任務(wù),希望本片文章能給你帶來幫助

參考資料:

  1. 正則表達(dá)式語法–菜鳥教程
  2. Java正則表達(dá)式實現(xiàn)

簡單批量替換

舉例:將and 批量替換為&&

Python實現(xiàn)

import re
def transformSimple(fromRegex, toText, inText):
    return re.sub(fromRegex, toText,inText, flags =re.I)
if __name__ == "__main__":
    inText = "x =1 and y =2"
    fromRegex = " and "
    toText = " && "
    outText = transformSimple(fromRegex,toText,inText )
    print(outText)
	## OUTPUT: x =1 && y =2

Java實現(xiàn)

import java.util.*;
import java.util.regex.*;
public class RegexTest {
	private static String transformSimple(String regexPattern, String replText, String inText){
        return Pattern.compile(regexPattern, Pattern.CASE_INSENSITIVE).matcher(inText).replaceAll(replText);
    }
    public static void main(String[] args) {
	    String input = "x =1 and y =2";
        String patternString =" and ";
        String toText = " && ";
        String outText ="";
        outText = transformSimple(patternString, toText, input);
        System.out.println("RESULT: " + outText);
}

// RESULT: x =1 && y =2

復(fù)雜模板替換

舉例:將x in (1,2)批量替換為[1,2].contains(x)

分析: 模板化

  • 輸入分組捕獲 (\S+)\s+in\s*\((.+?)\)
  • 輸出分組填寫 [@2].contains(@1) – @1和@2分別對應(yīng)分組捕獲中的第1組和2組。

Python實現(xiàn)

import re
def transformComplex(fromRegex, toText, inText):
    regObj = re.compile(fromRegex, flags =re.I)
    for match in regObj.finditer(inText):
        index = 1
        outText = toText
        for group in match.groups():
            outText = outText.replace("@"+str(index), group)
            index +=1
        inText = inText.replace(match.group(0), outText)
    return inText
if __name__ == "__main__":
    fromRegex = "(\S+)\s+in\s*\((.+?)\)"
    toText = "[@2].contains(@1)"
    inText = "x in (1,2) and y in (3,4)"
    outText22 = transformComplex(fromRegex, toText, inText)
    print(outText22)
    ## OUTPUT: [1,2].contains(x) and [3,4].contains(y)

Java實現(xiàn)

import java.util.*;
import java.util.regex.*;
public class RegexTest {
	private static String transformComplex(String regexPattern, String replText, String inText){
        Pattern pattern = Pattern.compile(regexPattern, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(inText);
        String outText ="";
        while (matcher.find()){
            outText =  replText;
            for (int i =1; i <= matcher.groupCount(); i++){
                outText = outText.replace("@"+i, matcher.group(i));
            }
            inText = inText.replace(matcher.group(0), outText);
        }
        return inText;
    }
    public static void main(String[] args) {
        String input = "x in (1,2) and y in (3,4)";
        String patternString ="(\\S+)\\s+in\\s*\\((.+?)\\)";
        String toText = "[@2].contains(@1)";
        String outText ="";
        outText = transformComplex(patternString, toText, input);
        System.out.println("RESULT: " + outText);
    }
}
// RESULT: [1,2].contains(x) and [3,4].contains(y)

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • python 密碼加密與解密的實現(xiàn)

    python 密碼加密與解密的實現(xiàn)

    本文主要介紹了python 密碼加密與解密的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 分享Pycharm中一些不為人知的技巧

    分享Pycharm中一些不為人知的技巧

    工欲善其事必先利其器,Pycharm 是最受歡迎的Python開發(fā)工具,它提供的功能非常強(qiáng)大,是構(gòu)建大型項目的理想工具之一,如果能挖掘出里面實用技巧,能帶來事半功倍的效果
    2018-04-04
  • Python處理CSV與List的轉(zhuǎn)換方法

    Python處理CSV與List的轉(zhuǎn)換方法

    下面小編就為大家分享一篇Python處理CSV與List的轉(zhuǎn)換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Windows上配置Emacs來開發(fā)Python及用Python擴(kuò)展Emacs

    Windows上配置Emacs來開發(fā)Python及用Python擴(kuò)展Emacs

    這篇文章主要介紹了Windows上配置Emacs來開發(fā)Python及用Python擴(kuò)展Emacs的方法,Emacs與Vim并稱為開發(fā)者手中最強(qiáng)大的兩款文本編輯器,需要的朋友可以參考下
    2015-11-11
  • python 實現(xiàn)快速生成連續(xù)、隨機(jī)字母列表

    python 實現(xiàn)快速生成連續(xù)、隨機(jī)字母列表

    今天小編就為大家分享一篇python 實現(xiàn)快速生成連續(xù)、隨機(jī)字母列表,具有很好的價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python模塊中pip命令的基本使用

    python模塊中pip命令的基本使用

    這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)python實現(xiàn)神經(jīng)網(wǎng)絡(luò)的示例解析,在同樣在進(jìn)行python機(jī)器學(xué)習(xí)的同學(xué)可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • python二分法查找算法實現(xiàn)方法【遞歸與非遞歸】

    python二分法查找算法實現(xiàn)方法【遞歸與非遞歸】

    這篇文章主要介紹了python二分法查找算法實現(xiàn)方法,結(jié)合實例形式分析了Python使用遞歸與非遞歸算法實現(xiàn)二分查找的相關(guān)操作技巧,需要的朋友可以參考下
    2019-12-12
  • Python并發(fā)編程線程消息通信機(jī)制詳解

    Python并發(fā)編程線程消息通信機(jī)制詳解

    這篇文章主要為大家介紹了Python并發(fā)編程之線程消息通信機(jī)制的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • 幫你快速上手Jenkins并實現(xiàn)自動化部署

    幫你快速上手Jenkins并實現(xiàn)自動化部署

    在未學(xué)習(xí)Jenkins之前,只是對Jenkins有一個比較模糊的理解,即Jenkins是一個自動化構(gòu)建項目發(fā)布的工具,可以實現(xiàn)代碼->github或者gitlab庫->jenkins自動部署->訪問的整體的過程,而無需人為重新打包,今天就帶大家詳細(xì)了解一下,幫你快速上手Jenkins,需要的朋友可以參考下
    2021-06-06
  • PyCharm安裝Markdown插件的兩種方法

    PyCharm安裝Markdown插件的兩種方法

    Markdown是一種可以使用普通文本編輯器編寫的標(biāo)記語言,通過簡單的標(biāo)記語法,它可以使普通文本內(nèi)容具有一定的格式。這篇文章主要介紹了PyCharm安裝Markdown插件的兩種方法,需要的朋友可以參考下
    2019-06-06

最新評論

新民市| 阳信县| 隆尧县| 鲁山县| 万年县| 贵阳市| 皋兰县| 琼中| 高碑店市| 凉城县| 无极县| 波密县| 象州县| 铁力市| 教育| 堆龙德庆县| 馆陶县| 囊谦县| 峡江县| 咸宁市| 祁门县| 祁阳县| 本溪| 南澳县| 囊谦县| 五台县| 贵港市| 额济纳旗| 化州市| 霍城县| 卢湾区| 北流市| 九寨沟县| 屏东县| 柏乡县| 泽库县| 姚安县| 青海省| 萨迦县| 丹江口市| 波密县|