第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Lua 語言如何替換多個可選字符串

Lua 語言如何替換多個可選字符串

比如有個包含子串的table : wordLib = {"lua","my","hello","go","主題","你好"} 有個字符串txt = "lua is my style! hello boy ,let`s go,我們的主題曲!"只要wordLib包含了的子串,都替換為" ** ";比如結(jié)果應(yīng)該是:** is ** style!** boy,let`s **,我們的**曲!沒分了,高手幫幫忙吧用其他語言里正則式是可以做到的比如有個詞庫包含了 go ,主題曲,my end 四個子串,不一定是單詞哦把字符串中含有子串的部分替換成 **現(xiàn)有一句話:我們的主題曲開播了,let`s go,my friends,好吧bingo!替換后可以為:我們的**開播了,let`s **,**fri**s,好吧bin**!其他語言實現(xiàn)的效果如下圖:是lua的模式串不能這么弄么
查看完整描述

3 回答

?
慕村225694

TA貢獻1880條經(jīng)驗 獲得超4個贊

這個很簡單啊,做字符串匹配。關(guān)鍵你那個替換邏輯有點亂。

【匹配整個單詞】
一般你在編輯器中做文本替換,要替換所有 【匹配整個單詞】 區(qū)分大小寫 等選項。

你的那個 屏蔽的單詞集合,明顯分了兩類,但卻沒有區(qū)分。

lua my hello go 等式 精確的單詞。比如 go 替換 不可能 替換 bingo 中的 go

主題 你好 等是卻要替換 一個完整單詞(因為匹配一般是靠空格符號匹配的)的一部分。
比如: 替換 "主題" 會把 "主題曲" 中的部分"主題" 替換

【解決方法】先做 包含中文單詞匹配,用空格當(dāng)然有些bug 還是需要解決的,比如常見的 中文符號,要從匹配中 去除,我給你做個簡單 demo。
你自己處理下 標(biāo)點符號。

查看完整回答
反對 回復(fù) 2019-04-15
?
滄海一幻覺

TA貢獻1824條經(jīng)驗 獲得超5個贊


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

---

-- function maskMsg takes string, table, string returns string

--

-- @text    預(yù)處理的文本

-- @set     預(yù)搜索的子串集合

--           

-- @repl    替換的文本

--          不指定則替換成 與字符串長度相等的 "*"

--

-- @return  處理后的文本

        

local function maskMsg ( text, set, repl )

    if #text <= 0  then

        return text

    end

    local function maskor ( str )

        return repl or string.rep( "*", #str )

    end

    for k, str in pairs(set) do

        text = string.gsub( text, str, maskor(str) )

    end

    return text

end

 

--  對給定文本中出現(xiàn)的 給定集合中的子串進行替換

text = "lua is my style! hello boy ,let`s go,我們的主題曲! Bingo!"

wordLib = {"lua","my","hello","go","主題","你好"}

local function main ()

    local msg = maskMsg ( text, wordLib, "**")

    print(msg)

     

end

main()

--- 輸出結(jié)果

--  ** is ** style! ** boy ,let`s **,我們的**曲! Bin**!

【注:】
【1】上面這個demo 是效率很低很低的方法。

【2】附件:簡單屏蔽指定集合中的單詞(含中文)- flameleo.lua

1

2

--- 輸出結(jié)果

--  ** is ** style! ** boy ,let`s **,我們的**曲! Bingo!

是一個分別處理模式串和非模式串的方法,需要改進中文分詞算法

 


查看完整回答
反對 回復(fù) 2019-04-15
  • 3 回答
  • 0 關(guān)注
  • 1755 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號