当前位置: 首页 > 面试题库 >

在Java中使用正则表达式进行字符串匹配

邓俊英
2023-03-14
问题内容

我想匹配这样的电话号码,它应该有3位数字(000,666除外)以及900-999之间的任何数字,然后是-然后是2位数字,然后是-
然后是4位数字。例如:123-75-3456是数学000-
23-3452不是匹配项(否000)915-23-4534不是匹配项(大于900)有人可以帮忙吗?抱歉,忘记添加我尝试的内容,[0-9 && ^
[000,666,[900-999]] {3}-[0-9] {2}-[0-9] {4}


问题答案:

我认为这应该可以解决问题:

^(?!000|666|9\d{2})\d{3}-\d{2}-\d{4}$

编辑2:这是一些想要测试的代码片段:

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

public class Main {

    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("^(?!000|666|9\\d{2})\\d{3}-\\d{2}-\\d{4}$");
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("Next number :");
            Matcher matcher = pattern.matcher(sc.nextLine());
            if (matcher.find()) {
                System.out.println("Matches");
            } else {
                System.out.println("Doesn't match");
            }
        }
    }
}


 类似资料:
  • 问题内容: 我在尝试将我的javascript regex经验转移到Python时遇到了麻烦。 我只是想让它工作: …但是它打印无。如果我做: 它匹配…默认情况下是否匹配字符串的开头?当匹配时,如何使用结果? 我如何进行第一场比赛?是否有比python网站提供的文档更好的文档? 问题答案: 隐式添加到您的正则表达式的开头。换句话说,它仅在字符串的开头匹配。 将在所有位置重试。 一般来说,建议您在需

  • 问题内容: 我在用Python将字符串中的数字匹配时遇到麻烦。尽管应该明确匹配,但甚至不匹配 或仅匹配。我的监督在哪里? 问题答案: 阅读文档:http : //docs.python.org/2/library/re.html#re.match 如果在零个或多个字符 开头 的 字符串 您要使用(或)

  • 问题内容: 示例字符串: 我想先进行匹配,然后将其替换为一些文本,以使字符串变为,然后进行匹配。 问题答案: 令人讨厌的是,Javascript没有提供PCRE递归参数,因此要处理嵌套问题远非易事。但是可以做到的。

  • 问题内容: 我有一个正则表达式字符串数组。其中之一必须与给定java文件中找到的任何字符串匹配。 这是我到目前为止拥有的正则表达式字符串: 但是,即使字符串内的引号被转义,该字符串也会被拒绝。我认为,无论字符串是否转义,当在字符串中找到引号时,我都会立即拒绝它。我需要它接受带转义引号的字符串文字,但它应该拒绝。 问题答案: 在Java中,您可以使用此正则表达式匹配和之间的所有转义引号: 使用的正则

  • 本文向大家介绍PowerShell中使用正则表达式匹配字符串实例,包括了PowerShell中使用正则表达式匹配字符串实例的使用技巧和注意事项,需要的朋友参考一下 本文介绍PowerShell中使用match操作符,配合正则表达式从字符串提取指定的内容。 使用正则表达式,除了可以确定字符串是否匹配某一个正则表达式规则之外,另一个很重要的应用就是从字符串中提取出指定的内容。什么意思呢,举个例子,一个

  • 我在java中有一个包含换行符的字符串。我需要一个正则表达式来匹配任何字符,包括换行符。 这是字符串: 我正在使用此代码(**?) 但它不会匹配换行符。