掌握---正则表达式

前端之家收集整理的这篇文章主要介绍了掌握---正则表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

正则表达式

作用:可以方便的对数据进行匹配,可以执行更加复杂的字符串验证、拆分、替换功能

核心操作类:

①Pattern类,主要表示一个规则。正则表达式的规则需要在Pattern类中使用。

②Matcher类,主要表示使用Pattern指定好的验证规则。

值得说明的,这两个类都是在java.util.regex包中。

使用方法

①Pattern类的实例化,查询JDK API可知,可以利用compile()方法取得Pattern类实例。

②Matcher类的实例化,查询JDK API可知,可以利用matcher()方法取得Matcher类实例。

需知:利用Pattern类的split()方法可以进行字符串的拆分操作,而利用Matcher类的matches()方法可以进行字符串规则验证操作和replaceAll()方法进行字符串的替换操作。

字符串验证操作:

  1. package demo;
  2. import java.util.regex.Matcher;
  3. import java.util.regex.Pattern;
  4. public class RegexDemo03 {
  5. /**
  6. * @param args
  7. */
  8. publicstatic void main(String[] args) {
  9. //TODO Auto-generated method stub
  10. Stringstr = "1983-07-27";
  11. Stringpat = "\\d{4}-\\d{2}-\\d{2}"; //定义替换规则
  12. Patternp = Pattern.compile(pat); //实例化Pattern类
  13. Matcherm = p.matcher(str); //实例化Matcher类
  14. if(m.matches()){
  15. System.out.println("日期格式合法!");
  16. }else {
  17. System.out.println("日期格式不合法!");
  18. }
  19. }
  20. }


字符串拆分操作:

  1. package demo;
  2. import java.util.regex.Pattern;
  3. public classRegexDemo04 {
  4. /**
  5. * @param args
  6. */
  7. public static void main(String[] args) {
  8. // TODO Auto-generated method stub
  9. Stringstr = "A1B22C33D4444E55555F";
  10. Stringpat = "\\d+"; // 定义拆分规则
  11. Patternp = Pattern.compile(pat); // 实例化Pattern类
  12. Strings[] = p.split(str); // 进行字符串拆分
  13. for (int i = 0; i < s.length; i++) {
  14. System.out.print(s[i] + "\t");
  15. }
  16. }
  17. }


字符串替换操作:

  1. package demo;
  2. import java.util.regex.Matcher;
  3. import java.util.regex.Pattern;
  4. public class RegexDemo05 {
  5. /**
  6. * @param args
  7. */
  8. publicstatic void main(String[] args) {
  9. //TODO Auto-generated method stub
  10. Stringstr = "A1B22C333D4444E55555F";
  11. Stringpat = "\\d+"; //定义替换规则
  12. Patternp = Pattern.compile(pat); // 实例化Pattern类
  13. Matcherm = p.matcher(str); //实例化Matcher类
  14. StringnewString = m.replaceAll("_"); //替换数字
  15. System.out.println(newString);
  16. }
  17. }


基于以上正则表达式的易用性,Java中String类可以对正则表达式支持,以便更加方便的进行字符串的操作。

示例:

  1. package demo;
  2. public classRegexDemo06 {
  3. /**
  4. * @param args
  5. */
  6. public static void main(String[] args) {
  7. // TODO Auto-generated method stub
  8. Stringstr1 = "A1B22C333D4444E55555F".replaceAll("\\d+","_");
  9. boolean temp = "1983-07-27".matches("\\d{4}-\\d{2}-\\d{2}");
  10. Strings[] = "A1B22C333D4444E55555F".split("\\d+");
  11. System.out.println("字符串替换操作:" + str1);
  12. System.out.println("字符串验证:" + temp);
  13. System.out.print("字符串拆分:");
  14. for (int i = 0; i < s.length; i++) {
  15. System.out.print(s[i] + "\t");
  16. }
  17. }
  18. }


警示:在正则操作中,如果出现了一些正则表达式中的字符(敏感性的字符),则需要对这些字符进行转义。

猜你在找的正则表达式相关文章