2016-08-25 13 views
1

C#を使用して、ユーザー入力からマークダウンテーブルをプログラムで生成します。プログラムでマークダウンテーブルを生成するときに文字列をエスケープする方法

編集

このデモのコードを考えてみましょう:

var a = Console.ReadLine(); 
var b = Console.ReadLine(); 
var c = Console.ReadLine(); 

var markdownTableBuilder = new StringBuilder(); 
markdownTableBuilder.AppendLine("| Column A | Column B | Column C |"); 
markdownTableBuilder.AppendLine("| -------- | -------- | ---------|"); 

markdownTableBuilder.AppendLine($"| {a} | {b} | {c}"); 
markdownTableBuilder.AppendLine(""); 

Console.WriteLine(markdownTableBuilder.ToString()); 

私は、B、Cの変数からすべての値下げ構文をエスケープします。例えば、ユーザーがのようなものを入力した場合Hello | *世界*、それはにエスケープする必要があります。 \ *世界\ *

+0

あなたは何を意味するのかよく分かっていませんが、効果的には次のように書くことができます: 'foreach(char char in string){bool escaped = false;文字列noMarkDown = ""; –

+0

もしそれがあなたが言っていることなら、あなたが言っているのは、あなたが言うならば、だから私は答えとしてそれを書くだろう –

+0

@ JamesHughes申し訳ありませんが、私は文字を削除したくないです。私はそれらを "エスケープ"したい。私の編集を参照してください。 – Matas

答えて

2

あなたは、交換のための正規表現を使用することができます。

string escaped = Regex.Replace(userInput, @"([|\*])", @"\$1"); 

これは、任意の'|', '\', '*'の文字を見つけて、その前に'\'を配置します。

+0

\\ *( "\" * \ "* \" * \ "* \" * \ "* \\ * ]) "、@" \ $ 1 ");' – Artemious

関連する問題