使用 Java 正则表达式匹配不可打印字符


有 7 个常用的不可打印字符,且每个字符都有其自己的十六进制表示。

名称字符十六进制表示
响铃\a0x07
转义\e0x1B
换页符\f0x0C
换行符\n0x0A
回车符\r0X0D
水平制表符\t0X09
垂直制表符\v0X0B

示例 1

 在线演示

以下 Java 程序接受输入文本并计算其中的制表符数量 −

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample1 {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input text: ");
      String input = sc.nextLine();
      String regex = "\t";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(input);
      int count =0;
      while (matcher.find()) {
         count++;
      }
      System.out.println("Number of tab spaces in the given iput text: "+count);
   }
}

输出

sample text with tab spaces
Number of tab spaces in the given input text: 3

示例 2

 在线演示

您还可以使用不可打印字符的相应十六进制表示来进行匹配。

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample1 {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input text: ");
      String input = sc.nextLine();
      String regex = "\x09";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(input);
      int count =0;
      while (matcher.find()) {
         count++;
      }
      System.out.println("Number of tab spaces in the given iput text: "+count);
   }
}

输出

Enter input text:
sample data with tab spaces
Number of tab spaces in the given input text: 4

更新于: 2020 年 1 月 13 日

898 次浏览

开启您的 事业

完成课程,获得认证

开始
广告