首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我在Pattern.compile()和.matcher()中传递变量,但没有获得所需的输出

在Java中,Pattern.compile()和.matcher()是正则表达式的相关方法。Pattern.compile()用于编译正则表达式模式,而.matcher()用于在给定的输入字符串中查找匹配该模式的子序列。

如果你在Pattern.compile()和.matcher()中传递变量但没有获得所需的输出,可能有以下几个原因:

  1. 正则表达式模式错误:请确保你传递给Pattern.compile()的正则表达式模式是正确的。正则表达式模式应该符合语法规则,并且能够正确匹配你想要的字符串。你可以参考Java正则表达式的语法规则和常见模式。
  2. 变量传递错误:请确保你正确地将变量传递给.matcher()方法。检查变量的类型和值是否与你期望的一致。如果你传递的是字符串变量,确保它包含了你想要在输入字符串中匹配的内容。
  3. 匹配方法调用错误:请确保你正确地调用了匹配方法,如.matches()、.find()等。根据你的需求选择合适的匹配方法,并确保在调用时传递了正确的参数。

如果你仍然无法获得所需的输出,可以考虑以下几个步骤来进一步排查问题:

  1. 检查输入字符串:确保你传递给.matcher()方法的输入字符串是正确的,并且包含了你期望匹配的内容。
  2. 调试输出:在调用.matcher()方法之前,可以使用System.out.println()或日志记录工具打印出你传递给Pattern.compile()和.matcher()的变量值,以及匹配方法的返回结果。这样可以帮助你确定问题出现的具体位置。
  3. 检查异常:如果你在编译或匹配过程中遇到了异常,可以查看异常的详细信息,以了解问题的具体原因。根据异常信息,你可以进一步调整代码或查找解决方案。

总结起来,要解决在Pattern.compile()和.matcher()中传递变量但没有获得所需输出的问题,你需要确保正则表达式模式、变量传递和匹配方法调用的正确性,并进行适当的调试和异常处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

滚雪球学Java(21):Java正则表达式

Java ,正则表达式是由 java.util.regex 包提供支持。 本文将介绍 Java 正则表达式,并演示如何使用 Java 正则表达式。...正则表达式由普通字符元字符组成。 普通字符 普通字符是没有特殊意义字符。例如,字符串 "hello" 匹配正则表达式 "hello"。 元字符 元字符是具有特殊意义字符。...Java Pattern 类表示一个正则表达式。要创建一个 Pattern 对象,只需调用 Pattern.compile() 方法并传递正则表达式字符串作为参数即可。...正则表达式是一种强大工具,可以用于字符串中进行模式匹配查找。掌握正则表达式可以帮助程序员更高效地处理字符串。...☀️建议/推荐你   无论你是计算机专业学生,还是对编程有兴趣小伙伴,都建议直接毫无顾忌学习此专栏「滚雪球学Java」,bug菌郑重承诺,凡是学习此专栏同学,均能获取到所需知识技能,全网最快速入门

9022

Java正则表达式详解

上面代码标志使模式匹配是忽略大小写 Pattern.matcher() 一旦获得了Pattern对象,接着可以获得Matcher对象。...如果在文本多次匹配,find() 方法返回第一个,之后每次调用 find() 都会返回下一个。 start() end() 返回每次匹配字串整个文本开始结束位置。...输出换行缩进是为了可读而增加。 注意第1个字符串中所有出现 John 后跟一个单词 地方,都被替换为 Joe Blocks 。第2个字符串,只有第一个出现被替换。...本篇文字,我们将通过例子了解正则表达式语法基础部分。介绍重点将会放在为了使用正则表达式所需要了解核心概念,不会涉及过多细节。详细解释,参见 Java DOC Pattern 类....这个表达式输入文本没有匹配项,尽管文本包括 John hurt. 为什么会这样? 因为 .*+ 是独占模式。与贪婪模式下,尽可能多匹配文本,以使整个表达式匹配不同。

2.5K00
  • java正则表达式http_Java 正则表达式(精华)

    大家好,又见面了,是你们朋友全栈君。...上面代码标志使模式匹配是忽略大小写 Pattern.matcher() 一旦获得了Pattern对象,接着可以获得Matcher对象。...如果在文本多次匹配,find() 方法返回第一个,之后每次调用 find() 都会返回下一个。 start() end() 返回每次匹配字串整个文本开始结束位置。...输出换行缩进是为了可读而增加。 注意第1个字符串中所有出现 John 后跟一个单词 地方,都被替换为 Joe Blocks 。第2个字符串,只有第一个出现被替换。...这个表达式输入文本没有匹配项,尽管文本包括 John hurt. 为什么会这样? 因为 .*+ 是独占模式。与贪婪模式下,尽可能多匹配文本,以使整个表达式匹配不同。

    1.4K10

    Java正则速成秘籍(一)之招式篇

    后来,多接触一些正则应用实例,渐渐有了感觉,再结合语义说明,终有领悟。觉得正则表达式武侠修练武功差不多,应该先练招式,再练心法。如果一开始就直接看正则规则,保证你会懵逼。...与Pattern类一样,Matcher类也没有公共构造方法。你需要调用Pattern对象matcher方法来获得一个Matcher对象。...案例:PatternMatcher初始化 Pattern p = Pattern.compile(regex); Matcher m = p.matcher(content); MatcherMatcher...这个方法返回一个字符串,就像传递MatcherappendReplacement 方法一个字面字符串一样工作。...说明 从输出结果可以看出,appendReplacementappendTail方法组合起来用,功能replaceAll是一样

    1.1K80

    怎么Java 16编写C风格局部静态变量

    我们可以用它来模仿C风格局部静态变量,即局部变量:只初始化一次(而且是懒惰地初始化)一个方法多个执行过程中共享这听起来是一个相当棘手功能,即只本地可见全局变量。...事实上,这是长期以来一直想要东西,特别是当我想在不污染类命名空间情况下缓存正则表达式模式时。...(string).find()); }}这又一次打印出了所需、最佳输出:scss 代码解读复制代码compile(a)check(a): truecheck(b): false使用var 来使用一个不可取消类型...(其成员我们可以取消引用),再加上将静态成员放在内类能力,有效地模拟了局部静态变量,就像在C语言中一样。...你仍然创建一个额外一个无用对象,希望逃逸分析能阻止它分配,所以这并不是一个非常干净解决方案,很高兴知道现在可以这样做了。

    8110

    Java正则速成秘籍(一)之招式篇

    后来,多接触一些正则应用实例,渐渐有了感觉,再结合语义说明,终有领悟。觉得正则表达式武侠修练武功差不多,应该先练招式,再练心法。如果一开始就直接看正则规则,保证你会懵逼。...与Pattern类一样,Matcher类也没有公共构造方法。你需要调用Pattern对象matcher方法来获得一个Matcher对象。...案例:PatternMatcher初始化 Pattern p = Pattern.compile(regex); Matcher m = p.matcher(content); 回到顶部 Matcher...这个方法返回一个字符串,就像传递MatcherappendReplacement 方法一个字面字符串一样工作。...说明 从输出结果可以看出,appendReplacementappendTail方法组合起来用,功能replaceAll是一样

    95450

    (89) 正则表达式 () 计算机程序思维逻辑

    Java没有什么特殊语法能直接表示正则表达式,需要用字符串表示,而在字符串,'\'也是一个元字符,为了字符串中表示正则表达式'\',就需要使用两个'\',即'\\',而要匹配'\'本身,就需要四个...,尾部空白字符串不会包含在返回结果数组头部中间空白字符串会被包含在内,比如: String str = ",abc,,def,,"; String[] fields = str.split...(str.replaceAll(regex, " ")); 输出为: hello world good replaceAllreplaceFirst,参数replacement也不是被看做普通字符串...(regex).matcher(this).replaceAll(replacement); } 边查找边替换 replaceAllreplaceFirst都定义Matcher,除了一次性替换操作外...变量实际值通过Map提供,变量名称对应Map键,模板引擎任务就是接受模板Map作为参数,返回替换变量字符串,示例实现为: private static Pattern templatePattern

    1.1K70

    尚学堂-马士兵-专题-正则表达式

    正则表达式, \s本身代表是空白字符. 由于\有特殊含义, * 所以, 写\s时候, 需要写成\\s....* 因此java,想要表示\,需要使用\\ * * 正则表达式, \有特殊含义, 比如\s \d \w. 因此表示\需要使用\\....下面来看案例 案例一: 一个简单小例子: 使用分组打印匹配成功字符串 输出结果: 我们看到, 如预期, 有三组满足条件. 那么, 如果想要得到三组每一组数字,怎么办呢?...632ee 获取第一组---全部是数字组 45896 758 632 获取第二组---全部是字母组 aa dd ee /* * 案例二: 获得上一个案例每一组数字...匹配是0个或者1个字符. 当?一个组作为开头时候, 表示是非捕获组 * * 来看看下面你demo */ Pattern p2 = Pattern.compile(".{3}(?

    1.2K20

    面试官:你竟然连这么简单正则表达式都不会写?

    断言:俗话断言就是“断定什么什么”,而正则断言,就是说正则可以指明指定内容前面或后面会出现满足指定规则内容,意思正则也可以像人类那样断定什么什么,比如"ss1aa2bb3",正则可以用断言找出...零宽:就是没有宽度,正则,断言只是匹配位置,不占字符,也就是说,匹配结果里是不会返回断言本身。 意思是讲明白了,那他有什么用呢? 我们来举个栗子:假设我们要用爬虫抓取csdn里文章阅读量。...,需要获得这里边‘641’有很多种办法,如果正则应该怎么匹配呢?...举个替换例子,假如想要把字符串abc换成a。...正则,贪婪也是差不多意思: 贪婪匹配:当正则表达式包含能接受重复限定符时,通常行为是(使整个表达式能得到匹配前提下)匹配尽可能多字符,这匹配方式叫做贪婪匹配。

    86630

    不会正则表达式?看这篇就够了!

    断言:俗话断言就是“断定什么什么”,而正则断言,就是说正则可以指明指定内容前面或后面会出现满足指定规则内容,意思正则也可以像人类那样断定什么什么,比如"ss1aa2bb3",正则可以用断言找出...零宽:就是没有宽度,正则,断言只是匹配位置,不占字符,也就是说,匹配结果里是不会返回断言本身。 意思是讲明白了,那他有什么用呢? 我们来举个栗子:假设我们要用爬虫抓取csdn里文章阅读量。...,需要获得这里边‘641’有很多种办法,如果正则应该怎么匹配呢?...举个替换例子,假如想要把字符串abc换成a。...正则,贪婪也是差不多意思: 贪婪匹配:当正则表达式包含能接受重复限定符时,通常行为是(使整个表达式能得到匹配前提下)匹配尽可能多字符,这匹配方式叫做贪婪匹配。

    87520

    正则表达式真的很骚,可惜你不会写!

    断言:俗话断言就是“断定什么什么”,而正则断言,就是说正则可以指明指定内容前面或后面会出现满足指定规则内容, 意思正则也可以像人类那样断定什么什么,比如"ss1aa2bb3",正则可以用断言找出...零宽:就是没有宽度,正则,断言只是匹配位置,不占字符,也就是说,匹配结果里是不会返回断言本身。 意思是讲明白了,那他有什么用呢? 我们来举个栗子: 假设我们要用爬虫抓取csdn里文章阅读量。...,需要获得这里边‘641’有很多种办法,如果正则应该怎么匹配呢?...捕获非捕获 单纯说到捕获,他意思是匹配表达式,捕获通常分组联系在一起,也就是“捕获组” 捕获组:匹配子表达式内容,把匹配结果保存到内存数字编号或显示命名组里,以深度优先进行编号,之后可以通过序号或名称来使用这些匹配结果...,其实学会它一些语法知识点还算不太难,想要做到真正学以致用能写出非常6正则,还有很远距离,只有真正对它感兴趣,并且经常研究使用它,才会渐渐理解它博大精深之处,就带你们走到这,剩下

    49900

    JAVA自动爬取CSDN用户数据并文章点赞

    题外话到此为止,先说说怎么获得csdn用户名,他方法是通过用户粉丝关注两个列表,最多可以获得12个用户名,再根据这12个用户名,继续进入每个用户主页,获得该用户粉丝关注列表用户数据,这样无限循环往复...return fanses; } 这里只拉30个用户数据,没有想好怎么截止这个任务。...附上自己写httpUtilStreamUtil访问网页方法并输出string方法。...大致思路是这样,打开https://me.csdn.net/用户名博客主页,解析文章列表便可获得文章id。跟踪登陆API,查看请求参数响应cook插入,解析出token。...1.进入该用户默认博客列表页面 这里通过https://blog.csdn.net/用户名/article/list/1进入博客列表 2.通过正则匹配获得第一篇文章链接ArticleIduserName

    84030

    Java正则表达式

    ,学过python都知道这个python正则表达式有异曲同工之妙。...Pattern pattern = Pattern.compile("\\d+"); String str = "是陈加兵456郑元梅34擦市场逻辑啊"; String[] splits =...Pattern.compile("\\d+"); String str = "是陈加兵456郑元梅34擦市场逻辑啊"; String[] splits = pattern.split(str, 2)...例如,表达式 ((A)(B(C))),存在四个这样组: ((A)(B(C))) (A) (B(C)) (C) 总之在正则表达式括号就是一个分组,下面用一个实例来理解一下...贪婪与非贪婪模式影响是被量词修饰子表达式匹配行为,贪婪模式整个表达式匹配成功前提下,尽可能多匹配,而非贪婪模式整个表达式匹配成功前提下,尽可能少匹配 一般写python爬虫时候使用都是非贪婪模式来匹配

    96120

    优秀攻城师必知正则表达式语法

    正则表达式是用来处理文本字符串神器没有之一,如果没有正则表达式,处理一些数据校验提取,替换工作会变得非常麻烦,例如:验证邮箱是否合法,提取网址,校验日期,校验电话号码,模糊搜索等等。...使用正则表达式来匹配文本,主要有两种直观反馈结果: (1)回答true/false,用来表达是否满足匹配条件 (2)除了回答true/false外,还要告诉每一响匹配数据是什么,以及文本起始位置...当第一个满足数据找到之后,程序仍然会继续剩下部分再次执行,直到遍历结束,所以这个过程是有可能匹配到多条数据,如上面的输出就找到了两条符合数据。...占有模式: (1) 模式: \d++@ 输出: 12345@ 67890@ (2) 模式: \d++3 输出:无匹配结果 (3) 模式: \d+3 输出: 123 为了说明问题,上面举了3个例子,其中...这个功能也是非常实用正则表达式里面,默认匹配规则都是隐式AND,比如我随便写一个匹配模式cat,那么就必须cat才行,如果想匹配cat或者dog应该怎么表示呢?

    1.3K30

    http编程系列(二)——java爬虫实现刷个人博客访问量

    这里发现一个问题,csdn既没有做接口ip访问量限制,访问量统计时也没有做同一ip相同时间段重复访问重复计数处理。这也时这个程序能够刷访问量原因。...这里工作就分为以下几步 1.根据个人主页url,访问个人主页并拿到页面数据 2.找出下一页URL并访问,重复该动作直到没有下一页,将每个url都存到set集合 3.遍历set集合,访问所有的博客列表页面...,为了重复使用,将其放入工具类。...2.找出下一页URL并访问,重复该动作直到没有下一页,将每个url都存到set集合 开启f12,我们来看下一页是怎么样。 ?...} } } 3.遍历set集合,访问所有的博客列表页面,获得页面数据,找到页面数据中所有的博客链接,存入博客链接set集合 我们先看看再blog列表页面blog链接 ?

    52130

    springboot经验之sql注入、xss注入拦截(POST)

    这里就不做介绍了,解决sql注入根本方案在于使用预编译而不是拼接sql, 而通常拦截参数都只有针对GET方法,下面介绍下POST方法 POST防注入方案 1、增加httprequest包装类 import...= StreamUtils.copyToByteArray(request.getInputStream()); } // 重写几个HttpServletRequestWrapper方法... * 如果需要获得原始值,则通过super.getParameterValues(name)来获取 * getParameterNames,getParameterValues...,如:checkbox所有数据 接收数组变量 ,如checkobx类型 */ @Override public String[] getParameterValues(String... * 如果需要获得原始值,则通过super.getHeaders(name)来获取 * getHeaderNames 也可能需要覆盖 */ @Override

    4.5K21

    Java中正则表达式PatternMatcherStringJava String.split()用法小结

    Pattern对应正则表达式,一个Pattern与一个String对象关联,生成一个Matcher,它对应PatternString一次匹配; 调用Matcher对象find()方法,Matcher...要注意是,它检验是“整个字符串能否由表达式匹配”,而不是“表达式能否字符串中找到匹配”。 可以认为regex首尾自动加上了匹配字符串起始结束位置锚点 \A\z 。...用来取消字符串text中所有转义字符特殊含义,实质就是字符串首尾添加 \Q \E。...通常,如果需要把某个字符串作为没有任何特殊意义正则表达式(比如从外界读入字符串,用在某个复杂正则表达式),就可以使用这个方法: "aacb".matches("a*.b");...image.png 等价于Pattern对应split()方法 Java String.split()用法小结 java.lang包中有String.split()方法,返回是一个数组 应用中用到一些

    1.3K50
    领券