Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在字符串中用'&书信电报;b>';在不更改单词的情况下将其加粗';原案_C#_Asp.net_.net - Fatal编程技术网

C# 在字符串中用'&书信电报;b>';在不更改单词的情况下将其加粗';原案

C# 在字符串中用'&书信电报;b>';在不更改单词的情况下将其加粗';原案,c#,asp.net,.net,C#,Asp.net,.net,我有一个字符串,我需要用将一个特定的单词加粗,这样当它被呈现时,文本必须加粗 e、 g。 String word=“a1c” String myString=“过敏类型a1c应该写为a1c。” 我可以做到以下几点: String1.Replace(word,"<b>"+word+"<b>") String1.替换(单词“+word+”) 但它会将所有A1c单词改为“A1c”,而不考虑原始单词的大小写 "The allergy type <b>a1c<

我有一个字符串,我需要用
将一个特定的单词加粗,这样当它被呈现时,文本必须加粗

e、 g。 String word=“a1c”
String myString=“过敏类型a1c应该写为a1c。”

我可以做到以下几点:

String1.Replace(word,"<b>"+word+"<b>") 
String1.替换(单词“+word+”)
但它会将所有A1c单词改为“A1c”,而不考虑原始单词的大小写

"The allergy type <b>a1c<b> should be written <b>A1C<b>."
“过敏类型a1c应写为a1c。”
我如何在不改变大小写的情况下完成这项工作,这样我就可以按需要获得输出


我知道我们可以通过循环和索引来实现,但我想知道使用高级术语(如RegEx或Linq)或任何小型内置机制的最佳方法。

您可以使用RegEx来匹配单词,无论大小写:

string word = "a1c";
string myString = "The allergy type a1c should be written A1C.";
var regex = new Regex(word, RegexOptions.IgnoreCase);
foreach (Match m in regex.Matches(myString))
{
    myString = myString.Replace(m.ToString(), "<b>" + m.ToString() + "</b>");
}
string word=“a1c”;
string myString=“过敏类型a1c应该写为a1c。”;
var regex=new regex(word,RegexOptions.IgnoreCase);
foreach(正则表达式中的匹配m.Matches(myString))
{
myString=myString.Replace(m.ToString(),“+m.ToString()+”);
}

P.P.考虑一个不同的方法来博尔德!内联样式不理想。

您可以使用单个
正则表达式来完成此操作。替换
调用如下:

var result = Regex.Replace(
    "The allergy type a1c should be written A1C.", // input
    @"a1c",                                        // word to match
    @"<b>$0</b>",                                  // "wrap match in bold tags"
    RegexOptions.IgnoreCase);                      // ignore case when matching
var result=Regex.Replace(
“过敏类型a1c应写为a1c。”,//输入
@“a1c”,//要匹配的单词
@$0“,//”将匹配项换行为粗体标记
RegexOptions.IgnoreCase);//匹配时忽略大小写

检查此代码我想这正是您要找的

string strRegex = @"<b>(?<X>.*?)</b>";
RegexOptions myRegexOptions = RegexOptions.IgnoreCase | RegexOptions.Multiline;
Regex myRegex = new Regex(strRegex, myRegexOptions);
string strTargetString = "Hellow world is my <b>first</b> application in <b>computer</b> world.";
        string NewString = strTargetString;
        foreach (Match myMatch in myRegex.Matches(strTargetString))
        {
            if (myMatch.Success)
            {
                NewString = NewString.Replace(myMatch.ToString(), myMatch.ToString().ToUpper());
            }
        }
string stregex=@“(?*?”;
RegexOptions myRegexOptions=RegexOptions.IgnoreCase | RegexOptions.Multiline;
正则表达式myRegex=新正则表达式(strRegex,myRegexOptions);
string strTargetString=“Hellow world是我在计算机世界的第一个应用程序。”;
字符串NewString=strTargetString;
foreach(在myRegex.Matches中匹配myMatch(strTargetString))
{
如果(myMatch.Success)
{
NewString=NewString.Replace(myMatch.ToString(),myMatch.ToString().ToUpper());
}
}
新闻字符串中的输出


Hellow world是我在计算机世界的第一个应用程序

@Rawling请再看一遍这个问题,我已经做了一些修改,以便更好地解释它。看看andy提供的链接。也可以尝试一下,这将为你提供很多答案。你只要选一个最适合你的词就行了。@andy这将帮助他匹配两个词。。。但这是否真的能帮助他替换它,保留每个箱子?或者它会用小写版本替换这两个版本吗?为什么不使用
Regex.replace
?替换为匹配的字符串?您可以在正则表达式的替换字符串中使用整个匹配项,方法是写入
$0
@Rawling。这绝对是一个更好的方法。