java正则表达式 分词_[Java]使用正则表达式实现分词
手工分詞稍嫌麻煩,不好維護,而利用正則表達式就利索多了。Java提供了java.util.regex.Matcher,java.util.regex.Pattern類來幫助我們實現此功能。
例一:以下程序將把"This is a farm that that raises dairy cattle."中的單詞一個個找出來。
package com.hy;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RexTest {
public static void main(String[] args){
String input = "This is a farm that raises dairy cattle.";
String regExp = "(\\w+)";
Pattern pattern=Pattern.compile(regExp);
Matcher matcher=pattern.matcher(input);
while(matcher.find()){
System.out.println(matcher.group(0));// 在這里使用matcher.group(0)和matcher.group(1)效果是一樣的
}
}
}
輸出如下:
This
is
a
farm
that
raises
dairy
cattle
例二:以下程序將找出算術表達式中的數字和符號。由于算術表達式中的+-*/()在正則表達式里都有自己含義,如+表示一個或多個,因為需要直接表示符號本身時采用\\進行轉義。
String input = "1+2+34*(5+78)/2";
String regExp = "(\\d+)|(\\+)|(\\-)|(\\*)|(\\/)|(\\()|(\\))";
Pattern pattern=Pattern.compile(regExp);
Matcher matcher=pattern.matcher(input);
while(matcher.find()){
System.out.println(matcher.group(0));
}
輸出:
1
+
2
+
34
*
(
5
+
78
)
/
2
例三:在例二的基礎上,增加小數的識別。正則表達式\\d+(\\.*)\\d*代表整數或者小數,如0.2,5,34.09都能識別出來。
String input = "1.1+0.2+34.09*(5+78)/0.0002";
String regExp = "(\\d+(\\.*)\\d*)|(\\+)|(\\-)|(\\*)|(\\/)|(\\()|(\\))";
Pattern pattern=Pattern.compile(regExp);
Matcher matcher=pattern.matcher(input);
while(matcher.find()){
System.out.println(matcher.group(0));
}
輸出:
1.1
+
0.2
+
34.09
*
(
5
+
78
)
/
0.0002
例四:找出SQL語句中關鍵字,字段和條件
[A-Z_a-z][A-Z_a-z0-9]*表示以大小寫字母或下劃線開頭之后可以是數字,字母,下劃線之一
(=)*表示可以出現0個或一個等號
(\\')*表示出現0個或一個單引號
(\\')*\\w*(\\')*表示引號中間可以為字符
String input = "select field1,field2,field3 from table1 where field1='1' order by field2 ";
String regExp = "([A-Z_a-z][A-Z_a-z0-9]*(=)*(\\')*\\w*(\\')*)";
Pattern pattern=Pattern.compile(regExp);
Matcher matcher=pattern.matcher(input);
while(matcher.find()){
System.out.println(matcher.group(0));
}
輸出:
select
field1
field2
field3
from
table1
where
field1='1'
order
by
field2
--END--2019年9月3日09點50分
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java正则表达式 分词_[Java]使用正则表达式实现分词的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: easyswoole数据库连接池_Eas
- 下一篇: 无线多串口服务器,多串口通信服务器