Java正则表达式匹配2个特殊字符,后跟未知数字位数

时间:2017-10-12 18:57:34

标签: java regex substring

输入可能就像

你好,你好#85865865?那天是什么日子。

输出

你好,你好吗?那天是什么日子。

public class remochar {
    public static void main(String args[]) {
        String input = "Hi how are you ? hello  &#4567 ghsgsgsf ";
        String regx = "&#";

        char[] ca = regx.toCharArray();
        for (char c : ca) {
            input = input.replace("&#", "");
        }

        System.out.println(input);
    }
}

2 个答案:

答案 0 :(得分:0)

欢迎您:

\&#[0-9]+

您可以使用此在线资源来测试您的正则表达式:https://regex101.com/。它还解释了正则表达式的工作原理。在这种情况下:

  

\&安培;#[0-9] +

     

" \&安培;"匹配字符" $"从字面上看(区分大小写)

     

"#"匹配角色"#"从字面上看(区分大小写)

     

匹配[0-9] +

下面列表中的单个字符      
      
  • " +"量词 - 在一次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)0-9一个字符
  •   
  • 0(索引48)和9(索引57)之间的范围(区分大小写)
  •   

答案 1 :(得分:0)

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class remochar {
    public static void main(String args[]) {
        System.out.println("Sample Input and Output :");
        Scanner Iname = new Scanner(System.in);    

        String input = Iname.nextLine();
        String inp = input;

        Pattern pattern = Pattern.compile("&#+[0-9]");
        Matcher matcher = pattern.matcher(inp);
        if(matcher.find()) {
            System.out.println("yes");
        }
    }
}