How to escape control characters?

H. S. Teoh via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Mar 30 20:29:19 PDT 2016


On Thu, Mar 31, 2016 at 03:23:52AM +0000, Seb via Digitalmars-d-learn wrote:
> On Thursday, 31 March 2016 at 03:15:49 UTC, cy wrote:
> >This might be a dumb question. How do I format a string so that all
> >the newlines print as \n and all the tabs as \t and such?
> 
> http://dlang.org/spec/lex.html#WysiwygString
> 
> r"ab\n" or `ab\n`

Or the verbose way:

	"abc\\ndef\\tghi"

But if the string is only known at runtime, you'd probably have to use
std.regex.replaceAll or something like that to manually escape
characters. Or implement manual substitution with a pipeline:

	string myString = ...;
	string escapedStr = myString
		.chunks(1)
		.map!(c => (c == "\n") ? "\\n" :
			   (c == "\r") ? "\\r" :
			   (c == "\t") ? "\\t" :
			   c)
		.joiner
		.array;


T

-- 
Береги платье снову, а здоровье смолоду. 


More information about the Digitalmars-d-learn mailing list