diff --git a/pygments/lexers/jvm.py b/pygments/lexers/jvm.py index ee0bc7af95..2736329d94 100644 --- a/pygments/lexers/jvm.py +++ b/pygments/lexers/jvm.py @@ -65,7 +65,7 @@ class JavaLexer(RegexLexer): 'var'), (r'(import(?:\s+static)?)(\s+)', bygroups(Keyword.Namespace, Text), 'import'), - (r'"(\\\\|\\"|[^"])*"', String), + (r'"', String, 'string'), (r"'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'", String.Char), (r'(\.)((?:[^\W\d]|\$)[\w$]*)', bygroups(Punctuation, Name.Attribute)), @@ -96,6 +96,13 @@ class JavaLexer(RegexLexer): 'import': [ (r'[\w.]+\*?', Name.Namespace, '#pop') ], + 'string': [ + (r'[^\\"]+', String), + (r'\\\\', String), # Escaped backslash + (r'\\"', String), # Escaped quote + (r'\\', String), # Bare backslash + (r'"', String, '#pop'), # Closing quote + ], }