In regex Syntax \s
ist ein metacharacter ein Leerzeichen darstellt (siehe Shorthand Character Classes). In einigen Sprachen müssen Sie wegen des Schrägstrichs doppelt entkommen (also \\s
).
Läßt die Regex analysiert:
^
ist die von dem
+
ist ein Operator "einer oder mehr", was bedeutet
$
ist das Ende der
\\s
ist die Raum-String beginnen die Zeichenfolge
Also das Patt ern entspricht den Strings, die nur aus mindestens einem Leerzeichen und nichts mehr bestehen.
Lassen Sie uns nun das Snippet analysieren:
"description"
ist nur die auf die translated_string
Eigenschaft
"type": "string"
bedeutet zugehörige Beschreibung, dass Sie in der JSON nur
"not"
einen String-Wert für die translated_string
Eigenschaft verwenden können bedeutet, dass das Folgende ist nicht zulässig:
"pattern": "^\\s+$"
ist der regex oben (also muss es nicht angepasst werden)
beachte, dass der Schnipsel entspricht:
"translated_string": {
"description": "A translated string",
"type": "string",
"not": {
"type": "string",
"pattern": "^\\s*$"
}
},
(wo der *
Operator bedeutet „Null oder mehr ")
oder sogar einfacher:
(wo \\S
ist alles anderes als ein Raum)
Also, die folgenden JSON sind richtig:
"translated_string": "l"
"translated_string": " l"
"translated_string": " l "
"translated_string": " l "
Während die folgenden JSON sind nicht korrekt:
"translated_string": ""
"translated_string": " "
"translated_string": " "
"translated_string": 1
"translated_string": [ SOMETHING ]
"translated_string": { SOMETHING }
'\\ s 'steht für ein [escaped] (https://stackoverflow.com/a/17597400/4607733) Leerzeichen-Metazeichen (siehe [Kürzel Zeichenklassen] (http://www.regular-expressions.info/shorthand.html)). Was kannst du nicht über das Snippet verstehen? – horcrux
@horcrux einige Erklärung von Snippet durch einige Beispiele für gültige Schemas und nicht gültige Schemas –
"^ \\ s + $" ist "Jeder nicht leere String, der nur Leerzeichen ist", aber der Validator nimmt das NICHT davon (so alles ABER das) – Tezra