我正试图在CodinGame上解决这个难题 https://www.codingame.com/ide/puzzle/cgx-formatter
在这个谜题中,您会得到一些文本作为输入,并且必须以某种方式对其进行格式化。我的方法是检查输入的开始,如果它是一个数字,字符串,布尔值,括号括起来的块等。我从输入字符串中删除匹配的部分并构建我的元素对象。当我完成后,我通过toString方法打印元素。
我无法从'string'
辨别出'key'=something
。我希望匹配输入开头的所有内容,包含在''''并没有跟=
。密钥与=
之间可以有空格或制表符。
if子句:
if(concat.matches("^'.*'.*") && !concat.matches("^'.*'\\s*=")){
System.err.println("Test");
}
为字符串'key'='value'
计算true(错误)。我做错了什么?
concat
是连接成一行的输入字符串。
答案 0 :(得分:0)
"^'([^']*)'[ \t]*[^=]*$"
()是你的匹配,没有引号的密钥。
这将匹配任何以单引号开头的字符串,后跟任意数字的除单引号之外的任何字符,直到单引号,之后可能出现任何数字(包括零)的空格或制表符,并且在此之后任何数字(包括零)任何字符(不包括等号)可能会出现在行的末尾。