Java 正規表示式的簡單應用.
package pack.java.thread.atm;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Expression {
//* + ? {n} {n,m}的意思:
//*代表0次到多次;
//+代表1次到多次;
//?代表0次到1次;
//{n}代表出現n次;
//{n,m}代表出現 n 到 m 次;
//\d代表0-9;
//\D代表非0-9;
//\s代表空格;
//\S代表非空格;
//\w代表A-Z0-9;
//\W代表非A-Z0-9;
/**
* 匹配字串;
*/
private void testMethod1(){
Pattern pattern = Pattern.compile("Java.*",Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("JAVA 程式語言!");
boolean bool = matcher.matches();
if(bool){
System.out.println("匹配成功!");
}else{
System.out.println("匹配失敗!");
}
}
/***
* 分割字串;
*/
private void testMethod2(){
String regx = "[,|]";
String input = "Hello Java Word Java,Hello ,,My,Name,Is|Java|Sun,.";
Pattern pattern = Pattern.compile(regx);
String[] strs = pattern.split(input);
for(int i = 0;i<strs.length;i++){
//如果不是空白的時候,則輸出.
if(!"".equals(strs[i])){
System.out.println(strs[i]);
}
}
}
/**
* 替換;
*/
private void testMethod3(){
String regex = "正規表示式";
Pattern pattern = Pattern.compile(regex);
String input = "正規表示式 Hello Word! 正規表示式 Hello Word!";
Matcher matcher = pattern.matcher(input);
//替換第一個出現的位置;
String result = matcher.replaceFirst("Java");
//替換所有;
//String result = matcher.replaceAll("Java");
System.out.println(result);
}
/**
* 根據查詢,然後進行替換;
*/
private void testMethod4(){
Pattern pattern = Pattern.compile("正規表示式");
Matcher matcher = pattern.matcher("正規表示式 Hello World,正規表示式 Hello World");
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, "Java");
}
matcher.appendTail(sb);
System.out.println(sb.toString());
}
/**
* 驗證郵箱;
*/
private void testMethod5(){
String regex = "[\\w\\.\\-]+@[\\w\\-]+[\\.]+[\\w]+";
String email = "363667565@qq.com";
//Pattern.CASE_INSENSITIVE 忽略大小寫;
Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(email);
if(matcher.matches()){
System.out.println("是正確的郵箱!");
}else{
System.out.println("不是正確的郵箱!");
}
}
/**
* 去除html標記;
*/
private void testMethod6(){
Pattern pattern = Pattern.compile("<.+?>", Pattern.DOTALL);
Matcher matcher = pattern.matcher("<font size='5' color = 'red'>樣式</font>");
//替換成空白;
String result = matcher.replaceAll("");
System.out.println(result);
}
/**
* 查詢html中對應的字元;
*/
private void testMethod7(){
String regex = "href=\"(.+?)\"";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher("<a href=\"index.html\">主頁</a>");
if(matcher.find()){
System.out.println(matcher.group(1));
}
}
/**
* 擷取https或者http url;
*/
private void testMethod8(){
String regex = "(http://|https://){1}[\\w\\.\\-/:]+";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher("http://www.baidu.com -> http://www.csdn.net");
StringBuffer buffer = new StringBuffer();
while (matcher.find()) {
buffer.append(matcher.group());
buffer.append("\r\n");
}
System.out.println(buffer.toString());
}
/**
* 替換{0},{1},{2},{3}中的字元;
*
*/
private void testMethod9(){
String msg = "我喜歡的遊戲有:{1},{2},{3},{4},{5}這幾種.!";
String[] msgArray = new String[]{"泡泡堂","彈彈堂","Acrlive","卡卡跑訂車","西遊記"};
StringBuffer sb =new StringBuffer();
sb.append("我喜歡的遊戲有:");
for(int i = 1;i<=msgArray.length;i++){
String regex ="\\{"+i+"\\}";
Pattern pattern =Pattern.compile(regex);
Matcher matcher= pattern.matcher(msg);
if(matcher.find()){
sb.append(msgArray[i-1]+",");
}
}
sb.append("這幾種.!");
System.out.println(sb.toString());
String str = "Java目前的發展史是由{0}年-{1}年";
String[][] object={new String[]{"\\{0\\}","1995"},new String[]{"\\{1\\}","2007"}};
System.out.println(replace(str,object));
}
public static String replace(final String sourceString,Object[] object)
{
String temp=sourceString;
for(int i=0;i<object.length;i++){
String[] result=(String[])object[i];
Pattern pattern = Pattern.compile(result[0]);
Matcher matcher = pattern.matcher(temp);
temp=matcher.replaceAll(result[1]);
}
return temp;
};
public static void main(String[] args) {
Expression expression = new Expression();
expression.testMethod1();
expression.testMethod2();
expression.testMethod3();
expression.testMethod4();
expression.testMethod5();
expression.testMethod6();
expression.testMethod7();
expression.testMethod8();
expression.testMethod9();
}
}
相關文章
- 正規表示式中環視的簡單應用示例【基於java】Java
- Java正規表示式簡單介紹Java
- 正規表示式理解及簡單應用舉例
- 正規表示式的應用
- 超簡單!正規表示式總結
- 正規表示式(java)Java
- java正規表示式Java
- 【java】正規表示式Java
- 正規表示式簡述
- java中的正規表示式Java
- Java常用正規表示式Java
- “正規表示式”應當稱為“規則表示式”
- 正規表示式簡明教程
- 簡單介紹python中使用正規表示式的方法Python
- java正規表示式大全(常用)Java
- Java017-正規表示式Java
- java正規表示式之 groupJava
- java 正規表示式 舉例Java
- Java正規表示式總結Java
- 正規表示式在Java中的使用Java
- Java 的正規表示式與爬蟲Java爬蟲
- 20個Python 正規表示式應用與技巧Python
- python正規表示式(簡明版)Python
- 【正規表示式】常用的正規表示式(數字,漢字,字串,金額等的正規表示式)字串
- 正規表示式的應用實現郵箱輸入
- 正規表示式如何在PHP裡靈活的應用PHP
- 正規表示式單行、多行模式簡介(使用說明)模式
- Java-正規表示式regex庫Java
- Java 正規表示式——捕獲組Java
- 正規表示式(程式碼java版)Java
- Java 正規表示式例項操作Java
- python就業班----正規表示式及re應用Python就業
- 正規表示式
- 正規表示式.
- Java正規表示式的語法與示例Java
- 20個實用正規表示式
- 簡單介紹正規表示式拆分url例項程式碼
- Linux 的正規表示式Linux
- 使用正規表示式判斷是否為手機號碼(簡單且實用)