【发布时间】:2013-01-07 04:41:15
【问题描述】:
我正在尝试编写一个查找具有以下模式的字符串的正则表达式:
- 以左括号
{开头,后跟双引号" - 然后允许包含 1+ 个字母数字字符的字符串
a-zA-Z0-9 - 然后是另一个双引号
",后跟一个冒号:和一个左大括号[ - 然后允许任何 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
但我知道我离基地很远。任何正则表达式大师都可以帮助我吗?提前致谢!
【问题讨论】:
-
为什么不使用 JSON 解析器?
-
如果我相信 online regex tester 这应该可以工作,当然除非我缺少一些
Java细节。 -
Nikolay - 在执行此代码之前,我已经删除了所有空格。 jlordo - 对解析器的良好调用,但对于这个简单的用例来说感觉有点过头了,但如果它变得比这更复杂,我肯定会使用解析器。
-
你有一个编译器错误(无效的转义序列)。见伊恩罗伯茨的回答。在这种情况下,请始终在您的问题中包含完整的错误消息。见stackoverflow question checklist