В синтаксисе регулярных выражений \s
— это метасимвол, представляющий пробел (см. Классы сокращенных символов). В некоторых языках вам нужно дважды экранировать его из-за косой черты (например, \\s
).
Давайте проанализируем регулярное выражение:
^
это начало строки
\\s
это пространство
+
— это оператор, означающий «один или несколько»
$
это конец строки
Таким образом, шаблон соответствует строкам, состоящим только из хотя бы одного пробела и ничего больше.
Давайте теперь проанализируем фрагмент:
"description"
— это просто описание, связанное со свойством translated_string
.
"type": "string"
означает, что в JSON можно использовать только строковое значение для свойства translated_string
.
"not"
means that the following is not permitted:
"pattern": "^\\s+$"
is the regex above (so it must not be matched)
Обратите внимание, что фрагмент эквивалентен:
"translated_string": {
"description": "A translated string",
"type": "string",
"not": {
"type": "string",
"pattern": "^\\s*$"
}
},
(где оператор *
означает "ноль или больше")
или еще проще:
"translated_string": {
"description": "A translated string",
"type": "string",
"pattern": "^\\S+$"
},
(где \\S
— это что угодно, только не пробел)
Итак, следующий JSON правильный:
"translated_string": "l"
"translated_string": " l"
"translated_string": " l "
"translated_string": " l "
В то время как следующие JSON неверны:
"translated_string": ""
"translated_string": " "
"translated_string": " "
"translated_string": 1
"translated_string": [ SOMETHING ]
"translated_string": { SOMETHING }
person
horcrux
schedule
22.06.2017
\\s
представляет экранированный метасимвол пробела (см. Классы сокращенных символов). Что вы не можете понять во фрагменте? - person horcrux   schedule 22.06.2017