gpt4 book ai didi

java - 在JAVA中使用这个正则表达式有什么问题?

转载 作者:行者123 更新时间:2023-12-01 15:22:09 25 4
gpt4 key购买 nike

在 JAVA 代码中使用以下正则表达式有什么问题:

    "(\\s[(]((\\w)*(\\s)*)*[)])"

这是替换字符串中的模式,例如“(foo bar foo bar)”。谢谢。

最佳答案

首先,测试正则表达式的最佳方法是使用 Regex Tester

其次,获取 Regex Cheat Sheet 的副本会很有帮助。

关于你的问题,因为括号在正则表达式中是保留字符,所以你需要使用\转义这些字符,但在Java中,因为\是一个特殊字符,你必须转义两次 - 例如

\\(.*\\)

这将匹配两个括号之间的任何内容。

要将其限制为仅匹配单词字符和空格,您可以使用:

\\((?:[\\w]|[\\s])*\\)

解释一下这里发生了什么:

  • (.)* 指示匹配与括号中的正则表达式匹配的任意数量的字符
  • (?:.)* 由于括号意味着我们正在分组,因此我们添加 ?: 表示我们对组的内容不感兴趣<
  • [\\w]|[\\s] 指示匹配单词字符或空白字符

关于java - 在JAVA中使用这个正则表达式有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10743963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com