書接上一回:
執行個體五:
美化數字
要求:在數字字元串的恰當位置添加逗号,友善使用者閱讀
第一個字元串:需要在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