正則表達(dá)式 - Java:字符串替換帶序號(hào)
問(wèn)題描述
原文本:
片仔癀(<span label='粉色背景' >603567</span>.SH)、天士力(<span label='綠色背景' >600535</span>.SH)、片仔癀(<span label='粉色背景' >603567</span>.SH)和昆藥集團(tuán)(<span label='金色背景' >600422</span>.SH)等。
替換成:
片仔癀(<span label='粉色背景' ><a link='http://#link?index=1'>603567</a></span>.SH)、天士力(<span label='綠色背景' ><a link='http://#link?index=2'>600535</a></span>.SH)、片仔癀(<span label='粉色背景' ><a link='http://#link?index=3'>603567</a></span>.SH)和昆藥集團(tuán)(<span label='金色背景' ><a link='http://#link?index=4'>600422</a></span>.SH)等。
現(xiàn)利用正則表達(dá)式可以替換到目標(biāo)文本,就是序號(hào)那一塊無(wú)法完成(無(wú)法循環(huán))
Pattern pattern = Pattern.compile('(<span.*?label='(*色背景)'.*?>)(.*?)(</span>)');Matcher matcher = pattern.matcher(str);int i=0;while (matcher.find()) { System.out.println(matcher.replaceAll(matcher.group(1) + '<a link='http://#link?index='+i+''>' + matcher.group(3) + '</a>' + matcher.group(4))); i++;}
問(wèn)題解答
回答1:你的代碼里面問(wèn)題太多了
String str='片仔癀(<span label='粉色背景' >603567</span>.SH)、'+'天士力(<span label='綠色背景' >600535</span>.SH)、'+'片仔癀(<span label='粉色背景' >603567</span>.SH)'+'和昆藥集團(tuán)(<span label='金色背景' >600422</span>.SH)等。';String patternStr='(<spans+label='.色背景's*>)(d+)';Pattern pattern = Pattern.compile(patternStr);Matcher matcher = pattern.matcher(str);String strResult=str;int i=0;while (matcher.find()) { i++; String replaceTo=matcher.group(1)+ '<a link='http://#link?index='+i +''>'+matcher.group(2)+'</a>'; strResult=strResult.replaceFirst(patternStr, replaceTo);}System.out.println(strResult);/* 輸出:片仔癀(<span label='粉色背景' ><a link='http://#link?index=1'>603567</a></span>.SH)、天士力(<span label='綠色背景' ><a link='http://#link?index=2'>600535</a></span>.SH)、片仔癀(<span label='粉色背景' ><a link='http://#link?index=3'>603567</a></span>.SH)和昆藥集團(tuán)(<span label='金色背景' ><a link='http://#link?index=4'>600422</a></span>.SH)等。 * */
還有 a 標(biāo)簽是不是沒(méi)有結(jié)束啊
回答2:參考這個(gè):https://stackoverflow.com/que...
試著把replaceAll換成replaceFirst,每次只替換第一個(gè),然后累加i。
回答3:a標(biāo)簽里面'改成’,試試
相關(guān)文章:
1. 我的html頁(yè)面一提交,網(wǎng)頁(yè)便顯示出了我的php代碼,求問(wèn)是什么原因?2. django - 后臺(tái)返回的json數(shù)據(jù)經(jīng)過(guò)Base64加密,獲取時(shí)用python如何解密~!3. tp6表單令牌4. 我在centos容器里安裝docker,也就是在容器里安裝容器,報(bào)錯(cuò)了?5. node.js - node 客戶端socket一直報(bào)錯(cuò)Error: read ECONNRESET,用php的socket沒(méi)問(wèn)題哈。。6. docker 17.03 怎么配置 registry mirror ?7. 老哥們求助啊8. node.js - nodejs中把熱request保存下來(lái),使用JSON.stringify(req)報(bào)錯(cuò),請(qǐng)問(wèn)怎么解決?9. mysql分庫(kù)分表量級(jí)疑問(wèn)10. javascript - canvas 可以實(shí)現(xiàn) PS 魔法橡皮擦的功能嗎?
