java regular expression
阿新 • • 發佈:2020-07-20
Attention
Example
matches() 嘗試匹配整個字串
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { Pattern pattern1 = Pattern.compile("\\w+"); // \w : 字母、數字、下劃線 Matcher matcher = pattern1.matcher("my_cat_is_sitting_on_the_mat"); System.out.println(matcher.matches()); // true } }
find() 查詢是否有子串匹配 , find()方法可以多次使用
public static void main(String[] args) { Pattern pattern1 = Pattern.compile("cat"); Matcher matcher = pattern1.matcher("my_cat_is_sitting_on_the_mat"); System.out.println(matcher.matches()); // false System.out.println(matcher.find()); // true }
find() group()
replaceAll() && replaceFirst()
@Test public void test2(){ Pattern pattern = Pattern.compile("[0-9]"); Matcher matcher = pattern.matcher("I have 3000 dollars."); String string = matcher.replaceAll("*"); System.out.println(string); // I have **** dollars. } @Test public void test2(){ Pattern pattern = Pattern.compile("[0-9]"); Matcher matcher = pattern.matcher("I have 3000 dollars."); String string1 = matcher.replaceFirst("*"); // String string = matcher.replaceAll("*"); System.out.println(string1); // I have *000 dollars.
split
@Test
public void testSplit(){
String str = "1,2,3,4,5";
String[] split = str.split(",");
System.out.println(Arrays.toString(split)); // [1, 2, 3, 4, 5]
}
@Test
public void testSplit2(){
String str = "1ada4dfs6fdfs78sdesf";
String[] split = str.split("[a-z]+"); // here don't use *, or you'll have : [1, , 4, , 6, , 7, 8]
System.out.println(Arrays.toString(split)); // [1, 4, 6, 78]
}