Замяніць радок з HTML-тэга

Я працую на Regex, але яго не працуе нармальна. Маё патрабаванне У мяне ёсць радковае значэнне і мае «## Anything ##» тэгі, як гэта. Я хачу, каб замяніць гэты ## Anything ## з дапамогай элемента кіравання асіны

##name## donates a texbox ##Field## donates a combobox and so on

0
Я хачу, каб стварыць элемент кіравання жэрах на час выканання, пры разборы радка.
дададзена аўтар Syed Umar Ahmed, крыніца
Я хачу, каб стварыць элемент кіравання жэрах на час выканання, пры разборы радка.
дададзена аўтар Syed Umar Ahmed, крыніца
Я хачу, каб стварыць элемент кіравання жэрах на час выканання, пры разборы радка.
дададзена аўтар Syed Umar Ahmed, крыніца
Ці хочаце вы стварыць TextBoxes падчас выканання на вэб-старонцы, ці гэта для стварэння вэб-старонкі падчас распрацоўкі?
дададзена аўтар Andrew Morton, крыніца
Ці хочаце вы стварыць TextBoxes падчас выканання на вэб-старонцы, ці гэта для стварэння вэб-старонкі падчас распрацоўкі?
дададзена аўтар Andrew Morton, крыніца

9 адказы

String.Replace падыход павінен працаваць нармальна і можа быць лепшым рашэннем для вас. Але калі вы ўсё яшчэ хочаце рашэнне рэгулярных выразаў, вы маглі б выкарыстоўваць нешта накшталт гэтага:

private const string REGEX_TOKEN_FINDER = @"##([^\s#]+)##"
private const int REGEX_GRP_KEY_NAME = 1;

public static string Format(string format, Dictionary args) {
    return Regex.Replace(format, REGEX_TOKEN_FINDER, match => FormatMatchEvaluator(match, args));
}

private static string FormatMatchEvaluator(Match m, Dictionary lookup) {
    string key = m.Groups[REGEX_GRP_KEY_NAME].Value;
    if (!lookup.ContainsKey(key)) {
        return m.Value;
    }
    return lookup[key];
}

Ён працуе на лексемы, такія як гэта: ## прывітанне ##. Значэнне паміж ## шукаюцца ў слоўніку, якую вы дае, памятаеце, што пошук у слоўніку адчувальны да рэгістра. Калі ён не знойдзены ў слоўніку, маркер застаецца нязменным у радку. Наступны код можа быць выкарыстаны, каб праверыць гэта:

var d = new Dictionary();
d.Add("VALUE1", "1111");
d.Add("VALUE2", "2222");
d.Add("VALUE3", "3333");

string testInput = "This is value1: ##VALUE1##. Here is value2: ##VALUE2##. Some fake markers here ##valueFake, here ##VALUE4## and here ####. And finally value3: ##VALUE3##?";

Console.WriteLine(Format(testInput, d));
Console.ReadKey();

Запуск гэта дасць наступны вынік:

<�Р> Гэта значение1: 1111. Вось значение2: 2222. Некаторыя падробленыя маркеры тут ## valueFake, тут ## Value4 ## і тут ####. І, нарэшце, Value3: 3333
2
дададзена

String.Replace падыход павінен працаваць нармальна і можа быць лепшым рашэннем для вас. Але калі вы ўсё яшчэ хочаце рашэнне рэгулярных выразаў, вы маглі б выкарыстоўваць нешта накшталт гэтага:

private const string REGEX_TOKEN_FINDER = @"##([^\s#]+)##"
private const int REGEX_GRP_KEY_NAME = 1;

public static string Format(string format, Dictionary args) {
    return Regex.Replace(format, REGEX_TOKEN_FINDER, match => FormatMatchEvaluator(match, args));
}

private static string FormatMatchEvaluator(Match m, Dictionary lookup) {
    string key = m.Groups[REGEX_GRP_KEY_NAME].Value;
    if (!lookup.ContainsKey(key)) {
        return m.Value;
    }
    return lookup[key];
}

Ён працуе на лексемы, такія як гэта: ## прывітанне ##. Значэнне паміж ## шукаюцца ў слоўніку, якую вы дае, памятаеце, што пошук у слоўніку адчувальны да рэгістра. Калі ён не знойдзены ў слоўніку, маркер застаецца нязменным у радку. Наступны код можа быць выкарыстаны, каб праверыць гэта:

var d = new Dictionary();
d.Add("VALUE1", "1111");
d.Add("VALUE2", "2222");
d.Add("VALUE3", "3333");

string testInput = "This is value1: ##VALUE1##. Here is value2: ##VALUE2##. Some fake markers here ##valueFake, here ##VALUE4## and here ####. And finally value3: ##VALUE3##?";

Console.WriteLine(Format(testInput, d));
Console.ReadKey();

Запуск гэта дасць наступны вынік:

<�Р> Гэта значение1: 1111. Вось значение2: 2222. Некаторыя падробленыя маркеры тут ## valueFake, тут ## Value4 ## і тут ####. І, нарэшце, Value3: 3333
2
дададзена

String.Replace падыход павінен працаваць нармальна і можа быць лепшым рашэннем для вас. Але калі вы ўсё яшчэ хочаце рашэнне рэгулярных выразаў, вы маглі б выкарыстоўваць нешта накшталт гэтага:

private const string REGEX_TOKEN_FINDER = @"##([^\s#]+)##"
private const int REGEX_GRP_KEY_NAME = 1;

public static string Format(string format, Dictionary args) {
    return Regex.Replace(format, REGEX_TOKEN_FINDER, match => FormatMatchEvaluator(match, args));
}

private static string FormatMatchEvaluator(Match m, Dictionary lookup) {
    string key = m.Groups[REGEX_GRP_KEY_NAME].Value;
    if (!lookup.ContainsKey(key)) {
        return m.Value;
    }
    return lookup[key];
}

Ён працуе на лексемы, такія як гэта: ## прывітанне ##. Значэнне паміж ## шукаюцца ў слоўніку, якую вы дае, памятаеце, што пошук у слоўніку адчувальны да рэгістра. Калі ён не знойдзены ў слоўніку, маркер застаецца нязменным у радку. Наступны код можа быць выкарыстаны, каб праверыць гэта:

var d = new Dictionary();
d.Add("VALUE1", "1111");
d.Add("VALUE2", "2222");
d.Add("VALUE3", "3333");

string testInput = "This is value1: ##VALUE1##. Here is value2: ##VALUE2##. Some fake markers here ##valueFake, here ##VALUE4## and here ####. And finally value3: ##VALUE3##?";

Console.WriteLine(Format(testInput, d));
Console.ReadKey();

Запуск гэта дасць наступны вынік:

<�Р> Гэта значение1: 1111. Вось значение2: 2222. Некаторыя падробленыя маркеры тут ## valueFake, тут ## Value4 ## і тут ####. І, нарэшце, Value3: 3333
2
дададзена

Вы можаце зрабіць гэта з дапамогай string.replace() метад:

//Example Html content
string html ="<html> <body> ##Name## </body> </html>";

 //replace all the tags for AspTextbox as store the result Html
string ResultHtml = html.Replace("##Name##","");
1
дададзена
Ці мае ваш тэг ## Усе ##, каб стварыць тэкставае поле, які змяшчае што тэкст? Я сапраўды не разумею, што вам трэба
дададзена аўтар Carlos Landeras, крыніца
Няма, але яна мае іншую радок, а як ## Anything ##
дададзена аўтар Syed Umar Ahmed, крыніца
я рэдагаваў пытанне зноў убачыць ## тэкст ## азначае яго тэкставае поле ## Значэнне ## азначае, што яго выпадальны спіс ## нічога ## т я ёсць наканаваны тэкст для карыстальніка, каб ўставіць ў багатым тэкставым полі
дададзена аўтар Syed Umar Ahmed, крыніца

Вы можаце зрабіць гэта з дапамогай string.replace() метад:

//Example Html content
string html ="<html> <body> ##Name## </body> </html>";

 //replace all the tags for AspTextbox as store the result Html
string ResultHtml = html.Replace("##Name##","");
1
дададзена
Ці мае ваш тэг ## Усе ##, каб стварыць тэкставае поле, які змяшчае што тэкст? Я сапраўды не разумею, што вам трэба
дададзена аўтар Carlos Landeras, крыніца
Няма, але яна мае іншую радок, а як ## Anything ##
дададзена аўтар Syed Umar Ahmed, крыніца
я рэдагаваў пытанне зноў убачыць ## тэкст ## азначае яго тэкставае поле ## Значэнне ## азначае, што яго выпадальны спіс ## нічога ## т я ёсць наканаваны тэкст для карыстальніка, каб ўставіць ў багатым тэкставым полі
дададзена аўтар Syed Umar Ahmed, крыніца

Вы можаце зрабіць гэта з дапамогай string.replace() метад:

//Example Html content
string html ="<html> <body> ##Name## </body> </html>";

 //replace all the tags for AspTextbox as store the result Html
string ResultHtml = html.Replace("##Name##","");
1
дададзена
Ці мае ваш тэг ## Усе ##, каб стварыць тэкставае поле, які змяшчае што тэкст? Я сапраўды не разумею, што вам трэба
дададзена аўтар Carlos Landeras, крыніца
Няма, але яна мае іншую радок, а як ## Anything ##
дададзена аўтар Syed Umar Ahmed, крыніца
я рэдагаваў пытанне зноў убачыць ## тэкст ## азначае яго тэкставае поле ## Значэнне ## азначае, што яго выпадальны спіс ## нічога ## т я ёсць наканаваны тэкст для карыстальніка, каб ўставіць ў багатым тэкставым полі
дададзена аўтар Syed Umar Ahmed, крыніца

Зноў жа, лепшы намёк выкарыстоўваць string.replace (), магчыма, у спалучэнні з String.substring ().

0
дададзена

Зноў жа, лепшы намёк выкарыстоўваць string.replace (), магчыма, у спалучэнні з String.substring ().

0
дададзена

Зноў жа, лепшы намёк выкарыстоўваць string.replace (), магчыма, у спалучэнні з String.substring ().

0
дададзена