gpt4 book ai didi

用于匹配 JSON 子字符串的某些部分的 Java 正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:51:19 24 4
gpt4 key购买 nike

我正在尝试编写一个正则表达式来查找具有以下模式的字符串:

  1. 以左括号 { 开头,后跟双引号 "
  2. 然后允许包含 1 个以上字母数字字符的字符串 a-zA-Z0-9
  3. 然后是另一个双引号 " 后跟一个冒号 : 和一个大括号 [
  4. 然后允许任何 0+ 字母数字字符 a-zA-Z0-9

所以一些匹配正则表达式的字符串:

{"hello":[blah
{"hello":[
{"1":[

还有一些匹配的字符串:

{hello:[blah
hello":[
{"2:[

到目前为止,我能想到的最好的是:

String regex = "{\"[a-zA-Z0-9]+\":\[[a-zA-Z0-9]*";
if(myString.matches(regex))
// do something

但我知道我离题太远了。任何正则表达式大师都可以帮助我吗?提前致谢!

最佳答案

String regex = "{\"[a-zA-Z0-9]+\":\[[a-zA-Z0-9]*";

这里的问题是你需要在方括号前多一个反斜杠。这是因为您需要 regex 包含 \[ 才能匹配方括号,这意味着 string literal 需要包含 \\[ 转义 Java 代码解析器的反斜杠。同样,您可能还需要转义正则表达式中的 {,因为它是一个元字符(用于限制重复计数)

String regex = "\\{\"[a-zA-Z0-9]+\":\\[[a-zA-Z0-9]*";

关于用于匹配 JSON 子字符串的某些部分的 Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14484170/

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