http://rsdn.ru/Forum/Message.aspx?mid=2628310&only=1Автор: Кодт
Дата: 20.08.07
C, C#
text = "Hello, \"world\"!"; // строка Hello, "world"!
text = "Hello, \\\"world\\\"!"; // строка Hello, \"world\"!
// <----------> <-> раскрашено как строки
// <------> не раскрашено
... << RSDN@Home 1.2.0 alpha rev. 655>>
Hello, !
К> C, C#
К> К> text = "Hello, \"world\"!"; // строка Hello, "world"!
К> text = "Hello, \\\"world\\\"!"; // строка Hello, \"world\"!
К> // <----------> <-> раскрашено как строки
К> // <------> не раскрашено
К>
Вот кусок колорера. Исправления принимаются.
<!-- literals -->
<pattern name="str">
<entry>'([^'\\]|\\['"\\0abfnrtv]|\\x[0-9aAbBcCdDeEfF]{1,4})'</entry>
<entry><![CDATA[(?<!@)"((?<!\\)\\"|[^"])*"]]></entry>
<entry>@"(""|[^"])*"</entry>
</pattern>
Posted via RSDN NNTP Server 2.1 beta
Здравствуйте, der Igel, Вы писали:
К>> C, C#
К>> К>> text = "Hello, \"world\"!"; // строка Hello, "world"!
К>> text = "Hello, \\\"world\\\"!"; // строка Hello, \"world\"!
К>> // <----------> <-> раскрашено как строки
К>> // <------> не раскрашено
К>>
DI>Вот кусок колорера. Исправления принимаются.
DI><entry><![CDATA[(?<!@)"((?<!\\)\\"|[^"])*"]]></entry>
Можно намного проще, и правильнее:
(?<!@)"([^\\"]|\\.)*"
Исправьте, пожалуйста, заодно и C/C++: добавьте \s* после # в директивах препроцессирования. (Я уже
писалАвтор: Roman Odaisky
Дата: 06.03.07
об этом.)