本文實(shí)例講述了正則表達(dá)式中環(huán)視的簡(jiǎn)單應(yīng)用。分享給大家供大家參考,具體如下:
由于開發(fā)工作需要對(duì)文本中內(nèi)容進(jìn)行過濾,刪除或替換掉一些無(wú)用的或不符合要求的信息。于是發(fā)現(xiàn)一個(gè)問題,某一類工程性文本中,用到很多英文寫法相同、但含義不同的單位,需要將其分別轉(zhuǎn)為真實(shí)含義對(duì)應(yīng)的漢字。比如:"粘度為17s,移動(dòng)距離為350厘米,要求混凝土必須內(nèi)實(shí)外光。振搗時(shí)間為30s。",很明顯第一個(gè)s是粘度的單位,第二s是時(shí)間單位,現(xiàn)在需要將文本中所有表示時(shí)間的s替換為“秒”,在朋友指引下,發(fā)現(xiàn)通過正則表達(dá)式中的環(huán)視可以方便實(shí)現(xiàn)這功能。
正則表達(dá)式中的環(huán)視,大家公認(rèn)的基本原理是依據(jù)位置信息來(lái)進(jìn)行匹配。我認(rèn)為,還可以把它理解為依據(jù)目標(biāo)字符的上下文進(jìn)行匹配。
具體的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,移動(dòng)距離為350厘米,要求混凝土必須內(nèi)實(shí)外光。振搗時(shí)間為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,移動(dòng)距離為350厘米,要求混凝土必須內(nèi)實(shí)外光。振搗時(shí)間為30秒。
PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:
JavaScript正則表達(dá)式在線測(cè)試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述對(duì)大家正則表達(dá)式學(xué)習(xí)有所幫助。
您可能感興趣的文章:- Java 正則表達(dá)式詳解
- JAVA正則表達(dá)式 Pattern和Matcher
- Java正則多字符串匹配替換
- java正則表達(dá)式驗(yàn)證郵箱、電話號(hào)碼示例
- java正則表達(dá)式四種常用的處理方式(匹配、分割、替代、獲?。?/li>
- Java/Js下使用正則表達(dá)式匹配嵌套Html標(biāo)簽
- Java正則表達(dá)式過濾出字母、數(shù)字和中文
- JAVA中正則表達(dá)式匹配,替換,查找,切割的方法
- 用Java正則去掉字符串中重復(fù)出現(xiàn)的字符
- Java正則環(huán)視和反向引用功能與用法詳解