您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“基于java如何實現(xiàn)正則表達式中環(huán)視的簡單應(yīng)用”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習一下“基于java如何實現(xiàn)正則表達式中環(huán)視的簡單應(yīng)用”這篇文章吧。
具體如下:
由于開發(fā)工作需要對文本中內(nèi)容進行過濾,刪除或替換掉一些無用的或不符合要求的信息。于是發(fā)現(xiàn)一個問題,某一類工程性文本中,用到很多英文寫法相同、但含義不同的單位,需要將其分別轉(zhuǎn)為真實含義對應(yīng)的漢字。比如:"粘度為17s,移動距離為350厘米,要求混凝土必須內(nèi)實外光。振搗時間為30s。",很明顯第一個s是粘度的單位,第二s是時間單位,現(xiàn)在需要將文本中所有表示時間的s替換為“秒”,在朋友指引下,發(fā)現(xiàn)通過正則表達式中的環(huán)視可以方便實現(xiàn)這功能。
正則表達式中的環(huán)視,大家公認的基本原理是依據(jù)位置信息來進行匹配。我認為,還可以把它理解為依據(jù)目標字符的上下文進行匹配。
具體的Java代碼如下
package ccnu; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; public class regex { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String tempHtmlString="粘度為17s,移動距離為350厘米,要求混凝土必須內(nèi)實外光。振搗時間為30s。"; Pattern p_html; Matcher m_html; String regEx = "([^粘度][u4e00-u9fa5]{1,10}(?<=[0-9]))s([^a-z]$)"; p_html = Pattern.compile(regEx); m_html = p_html.matcher(tempHtmlString); String resultString=""; try { resultString = m_html.replaceAll("$1秒"); } catch (PatternSyntaxException ex) { // Syntax error in the regular expression } catch (IllegalArgumentException ex) { // Syntax error in the replacement text (unescaped $ signs?) } catch (IndexOutOfBoundsException ex) { // Non-existent backreference used the replacement text } System.out.println(resultString); } }
結(jié)果:粘度為17s,移動距離為350厘米,要求混凝土必須內(nèi)實外光。振搗時間為30秒。
以上是“基于java如何實現(xiàn)正則表達式中環(huán)視的簡單應(yīng)用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。