日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java正则表达式 分词_[Java]使用正则表达式实现分词

發布時間:2025/3/15 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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]使用正则表达式实现分词的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。