ich die unten regex habe (von diesem Link: get python dictionary from string containing key value pairs)Regex find Wort wie "-"
r"\b(\w+)\s*:\s*([^:]*)(?=\s+\w+\s*:|$)"
ist hier die Erklärung:
\b # Start at a word boundary
(\w+) # Match and capture a single word (1+ alnum characters)
\s*:\s* # Match a colon, optionally surrounded by whitespace
([^:]*) # Match any number of non-colon characters
(?= # Make sure that we stop when the following can be matched:
\s+\w+\s*: # the next dictionary key
| # or
$ # the end of the string
) # End of lookahead
Meine Frage, dass, wenn mein String hat die Wort mit dem "-" dazwischen, zum Beispiel: movie-night
, funktioniert der obige Regex nicht und ich denke, es ist wegen der b(\w+)
. Wie kann ich diesen Regex ändern, um mit einem Wort einschließlich "-" zu arbeiten? Ich habe versucht b(\w+-)
, aber es funktioniert nicht. Danke im Vorraus für deine Hilfe.
Sie können versuchen, 'b ([\ w -] +)'. – shantanoo
Wo ist der Doppelpunkt in Ihrem Beispiel? Deine Regex scheint einen zu brauchen, oder? –