天天看點

正規表達式 學習筆記1.3

書接上一回:

執行個體五:

美化數字

要求:在數字字元串的恰當位置添加逗号,友善使用者閱讀

第一個字元串:需要在1 2之間、4 5之間、7 8之間添加逗号。

第二個字元串:需要在3 4 之間添加

第三個字元串:不要添加任何。

public static void main(String[] args) {

String[] numbers = new String[]{"1234567890","123456","123"};

for(String number:numbers){

System.out.println("之前:"+number + "\n" + "美化:"+beautifyNumber(number) + "\n");

}

private static String beautifyNumber(String number) {

return number.replaceAll(Regexes.NUMBER_BEAUTIFY_REGEX, ",");

public class Regexes {

public static final String NUMBER_BEAUTIFY_REGEX = "(?<=\\d)(?=((\\d{3})+\\b))";

運作結果:

之前:1234567890

美化:1,234,567,890

之前:123456

美化:123,456

之前:123

美化:123

4、正規表達式的主要思想

1)、正規表達式是一種描述字元串結構模式的形式化表達語言

2)、結構模式

·有結構的字元串,而不是字元流

3)、形式化

·用形式化的表達方法應付變化的情況

所謂結構化:

String emailRegex = 

Regexes.USERNAME_REGEX + "@" + Regexes.HOSTNAME_REGEX;

String email = "[email protected]";

将感興趣的用@構造出來。

[email protected]能與我們構造的結構化相比對,這就是所謂的結構化。

所謂形式化的表達方式:

譬如:String regex1 = "\\d+";

它比對的是完全由10進制數值構成的字元串,不是比對\\d+的字元串。

String DUP_WORD_REGEX = "(?<=\\b)(\\w+)\\s+\\1(?=\\b)";

...

String regex = Regexes.DUP_WORD_REGEX;

return sentence.replaceAll(regex,"$1");

....

$1是與正規表達式相關的概念

這個正規表達式能夠智能處理識别字元串中重複的單詞。

6、小結

·一門功能強大的文本處理語言

·靈活、高效、強大、便捷

·結構模式、形式化

正規表達式 學習筆記1 全文完

本文轉自jooben 51CTO部落格,原文連結:http://blog.51cto.com/jooben/316594

下一篇: freenas

繼續閱讀