当前位置: 首页 > 知识库问答 >
问题:

字符串上的正则表达式

钱跃
2023-03-14

我有一根下面这样的弦

String phone = (123) 456-7890

现在我希望我的程序验证我的输入是否与字符串“phone”的模式相同

我做了以下工作

if(phone.contains("([0-9][0-9][0-9]) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]")) {

   //display pass
}
else {

   //display fail
}

没奏效。我也尝试了其他的组合。什么都不起作用。

问题:1。我怎样才能做到这一点,而不使用‘模式’像上面?2.如何用图案做到这一点。我尝试了如下模式

Pattern Pattern=Pattern.compile(“(\d+)”);Matcher match=pattern.Matcher(电话);

if (match.find()) {
   //Displaypass
}

共有2个答案

岳晟
2023-03-14

我不打算深入研究正则表达式语法,但您的正则表达式肯定有问题。

"([0-9][0-9][0-9]) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]"

它包含(),它们有特殊的含义。逃脱他们

"\([0-9][0-9][0-9]\) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]"

您还必须转义您的\

"\\([0-9][0-9][0-9]\\) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]"
芮琛
2023-03-14

string#matchs检查字符串是否与模式匹配:

if (phone.matches("\\(\\d{3}\\) \\d{3}-\\d{4}")) {
    //Displaypass
}

模式是正则表达式。因此,我不得不转义圆括号,因为它们在regex中有特殊的含义(它们表示捕获组)。

contains()仅检查字符串是否包含传递给它的子字符串。

 类似资料:
  • 我有一个包含数千行的文本文件。这里有一个例子 我试图提取'nt60'、'nt50'末尾的字符串。 问题是会包含行尾字符() 我想使用正则表达式搜索来匹配从 (') 开始的字符串,但我不知道我应该用什么来匹配 。 有人能帮忙吗?

  • 我想为C中的一些字符串创建一个正则表达式。 这就是我目前的情况: C中的字符串由双引号(")分隔,因此正则表达式必须由 \" \". 字符串可能不包含换行符,因此我需要执行[^\n](我想)。 字符串还可能包含双引号或反斜杠字符,如果且仅当它们被转义时。因此[\\\”](我想也是这样)。 除此之外,什么都可以。 任何帮助是非常感谢我有点迷失了如何开始写这个正则表达式。

  • 问题内容: 假设您要在管道上执行正则表达式搜索并提取,但是该模式可能会跨越多行,该怎么做?也许正则表达式库适用于流? 我希望使用Python库完成这项工作吗?但是任何解决方案都可以,当然不是库,而是cmd行工具。 顺便说一句,我知道如何解决我当前的问题,只是寻求一个通用的解决方案。 如果不存在此类库,那么在常规数学算法永远不需要向后扫描的情况下,为什么常规库不能与流一起使用。 问题答案: 如果您寻

  • 相比较于第一章变量的声明,这一章的内容有了一点深度提升,但还不至于很难理解。本章主要讲2个知识点,字符串、正则表达式 字符串 字符串(String)是JavaScript6大原始数据类型。其他几个分别是Boolean、Null、Undefined、Number、Symbol(es6新增)。 字符串类型在前端开发者,是使用最频繁的类型之一,网站上可见的各种文案,几乎都是字符串类型的数据。我们经常需要

  • 字符串可以说是程序设计中最为重要的数据类型之一。几乎每种高级编程语言都有它的一席之地,而且能有效的使用它也是开发者编写实用程序的基本准则。作为重要的扩展,正则表达式赋予开发者操作字符串的额外能力。ECMAScript 6 的缔造者们将这些事实牢记于心,改进了字符串和正则表达式,并添加了长久以来缺失的某些功能。本章会讲解它们的变化之处。 译者注: gitbook 无法正常解析 $$ 字符,所以在模板

  • 我不熟悉Javascript和正则表达式,所以我一直在研究如何使路由匹配所有以