C# 使用正则表达式和C转换为句子大小写#

C# 使用正则表达式和C转换为句子大小写#,c#,regex,string,C#,Regex,String,我使用下面的代码将字符串转换为句子大小写 var sentenceRegex = new Regex(@"(^[a-z])|[?!.:;]\s+(.)", RegexOptions.ExplicitCapture); var result = sentenceRegex.Replace(toConvert.ToLower(), s => s.Value.ToUpper()); 但是,当句子以HTML_标记开头时,它会失败,如下例所示 我想跳过HTML标记并将文本转换为句子大小写。 当前文

我使用下面的代码将字符串转换为句子大小写

var sentenceRegex = new Regex(@"(^[a-z])|[?!.:;]\s+(.)", RegexOptions.ExplicitCapture);
var result = sentenceRegex.Replace(toConvert.ToLower(), s => s.Value.ToUpper());
但是,当句子以HTML_标记开头时,它会失败,如下例所示

我想跳过HTML标记并将文本转换为句子大小写。 当前文本:

<BOLD_HTML_TAG>lorem ipsum is simply dummy</BOLD_HTML_TAG> text of the printing and typesetting industry.
<PARAGRAPH_TAG>LOREM ipsum has been the industry's standard dummy
textever since the 1500s</PARAGRAPH_TAG>.
<BOLD_HTML_TAG>Lorem ipsum is simply dummy</BOLD_HTML_TAG> text of the
printing and typesetting industry. <PARAGRAPH_TAG>Lorem ipsum has been
the industry's standard dummy textever since the
1500s</PARAGRAPH_TAG>.
lorem ipsum只是印刷和排版行业的虚拟文本。 LOREM ipsum一直是业界的标准假人 从16世纪开始。 句后大小写输出应如下所示:

<BOLD_HTML_TAG>lorem ipsum is simply dummy</BOLD_HTML_TAG> text of the printing and typesetting industry.
<PARAGRAPH_TAG>LOREM ipsum has been the industry's standard dummy
textever since the 1500s</PARAGRAPH_TAG>.
<BOLD_HTML_TAG>Lorem ipsum is simply dummy</BOLD_HTML_TAG> text of the
printing and typesetting industry. <PARAGRAPH_TAG>Lorem ipsum has been
the industry's standard dummy textever since the
1500s</PARAGRAPH_TAG>.
Lorem ipsum只是
印刷和排版业。Lorem ipsum已被删除
自
1500秒。

如果有人能帮助我使用正则表达式忽略(而不是删除)字符串中的HTML标记,并将字符串转换为句子大小写,我将不胜感激。

可能不漂亮,但它可以工作;)

使用系统;
使用System.Text.RegularExpressions;
公共课程
{
公共静态void Main()
{
string toConvert=“lorem ipsum只是印刷和排版行业的虚拟文本。”+
“LOREM ipsum一直是业界的标准假人”+
“16世纪以来的文本。”;

var sentenceRegex=newregex(@“(?可能不漂亮,但它可以工作;)

使用系统;
使用System.Text.RegularExpressions;
公共课程
{
公共静态void Main()
{
string toConvert=“lorem ipsum只是印刷和排版行业的虚拟文本。”+
“LOREM ipsum一直是业界的标准假人”+
“16世纪以来的文本。”;


var sentenceRegex=new Regex(@“(?类似?这类内容假定您的标记始终为大写。并且不超过1,但通过添加
(?:\s*这些标记确实是可能出现的唯一标记,或者您是否需要处理大量其他标记(例如,
)以下标签可以出现在p | b | br | li | ul | ol | u | i | strong | h1 | h2 | h3 | h4 | h5 | h6上(我不认为这个问题是重复的,因为这个问题引用了那个问题的答案。)@MatthewWatson确实,我错过了HTML标记部分。类似于?这假设您的标记总是大写的。并且不超过1个,但通过添加
(?:\s*这些是真正可能出现的唯一标记,还是您可能需要处理大量其他标记(例如,
)以下标签可以出现在p | b | br | li | ul | ol | u | i | strong | h1 | h2 | h3 | h4 | h5 | h6上(我不认为这个问题是重复的,因为这个问题引用了那个问题的答案。)@MatthewWatson的确,我错过了HTML标记部分。感谢您的回复,去掉HTML并不是我所期望的。我希望保留HTML标记,并将句子转换为句子大小写。具体来说,我希望跳过HTML标记,而不是删除它们。示例:Before:lorem ipsum只是dummy,Before:lorem ipsum是s意味着dummy@Tub我不确定我是否了解你…这正是它所做的。检查。很抱歉,我猜在我的末端执行了一个问题,因此结果未能按预期显示。让我再试一次。我会尽快让你知道。我感谢你的努力,代码部分工作,但在有多个标记的情况下会失败示例我真的很抱歉,我不擅长正则表达式,看它如何适合多个标记。感谢您的回复,剥离HTML并不是我所期望的。我想保留HTML标记,并将句子转换为句子大小写。具体来说,我想跳过HTML标记,而不是删除它们。示例:Before:lorem ipsum只是虚拟后:Lorem ipsum只是dummy@Tub我不确定我是否了解你…这正是它所做的。检查。很抱歉,我猜在我的末端执行了一个问题,因此结果未能按预期显示。让我再试一次。我会尽快让你知道。我感谢你的努力,代码部分工作,但在场景w中会失败这里有多个标签,例如,我真的很抱歉,我不擅长正则表达式,看它如何适合多个标签。