gpt4 book ai didi

regex - 使用SilverLight在RichTextBox上使用RegEx突出显示单词

转载 作者:行者123 更新时间:2023-12-04 16:23:26 26 4
gpt4 key购买 nike

我试图突出显示正则表达式中标记的单词,字母或任何东西。
我在Silverlight中使用RichTextBox(请注意,Silverlight不会使用与其他应用程序相同的.NET Framework,例如,它没有TextRange)

每次文本有\ r \ n或\ n \ r时,指针都会向前移动4个位置。但是真正糟糕的是,当我进行突出显示时,样式文本会再增加4个位置。甚至,我认为他的行为比种族的行为更古怪。请给我一些建议!

感谢FailDev。

我尝试使用的文本是:

ffffffffffafffffffffff
fffffafffffffffff
ffffffffffffffffffffffff

(4行,最后一个f之后有一个载波返回\换行)

同样,这与我的代码不兼容(行为是否正常):

ffffffffffaaffffffafffff
fffffafffffffffff
ffffffffffffffffffffffff

(4行,最后一个f之后有一个载波返回\换行)

该想法以蓝色,粗体突出显示,并在“ a”字符下划线。

我尝试的最后一个代码是这样的:

MatchCollection CarrierReturns =  MainGeneral.Build_Regex(@"[\r\n|\n\r]", false);

MatchCollection WordsFound = MainGeneral.Build_Regex("[a]", false);
foreach (Match x in WordsFound) {
int StringCarrierCount = 0;

if (CarrierReturns.Count > 0)
{
foreach (Match CR in CarrierReturns)
{
if (x.Index > CR.Index)
{
textBox1.Text += " CI:" + StringCarrierCount + "- ";
break;
}
StringCarrierCount++;
}
}

if (x.Index < CarrierReturns[0].Index) { StringCarrierCount = 0; }

StringBegin = 2 + x.Index + (4 * StringColorCounter) + (4 * StringCarrierCount);
StringEnd = StringBegin + x.Length;
textBox1.Text += StringBegin + "-" + StringEnd + " ";
StringColorCounter++;

StartPoint = MainData.ContentStart.GetPositionAtOffset(StringBegin, LogicalDirection.Forward);
EndPoint = MainData.ContentStart.GetPositionAtOffset(StringEnd, LogicalDirection.Forward);
MainData.Selection.Select(StartPoint, EndPoint);
MainData.Selection.ApplyPropertyValue(TextElement.ForegroundProperty, new SolidColorBrush(Colors.Blue));
MainData.Selection.ApplyPropertyValue(Run.TextDecorationsProperty, TextDecorations.Underline);
MainData.Selection.ApplyPropertyValue(TextElement.FontWeightProperty, FontWeights.Bold);
}


在此先感谢,请在差评之前询问我! :)

最佳答案

行分隔符可以是\r\n(回车+换行),\n(仅换行)或\r(仅回车)中的任何一个。匹配一个的正确方法是使用\r\n|[\r\n]

您的正则表达式-[\r\n|\n\r]-恰好匹配一个字符; \r\n|中的任何一个。这意味着,每当行分隔符为\r\n时,您的代码就好像有两个行分隔符,而不是一个。

您的代码中可能还会存在其他错误,但我不太了解它正在尝试执行的操作。我确定正则表达式不正确。

关于regex - 使用SilverLight在RichTextBox上使用RegEx突出显示单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8152546/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com