Это простое изменение заставляет его работать.
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerViewFolderList"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintHeight_default="wrap"
app:layout_constraintBottom_toTopOf="@+id/imgViewClose2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView1" />
Спасибо всем, кто пытался мне помочь.
Этот regex должен сделать задание: (?<!<[^>]*)(regex you want to check: Fred|span)
Это проверяет, что невозможно соответствовать regex <[^>]*
идущий обратный запуск с соответствующей строки.
Измененный код ниже:
const string notInsideBracketsRegex = @"(?<!<[^>]*)";
const string highlightPattern = @"<span class=""Highlight"">$0</span>";
DataBoundLiteralControl litCustomerComments = (DataBoundLiteralControl)e.Row.Cells[CUSTOMERCOMMENTS_COLUMN].Controls[0];
// Turn "term1 term2" into "(term1|term2)"
string spaceDelimited = txtTextFilter.Text.Trim();
string pipeDelimited = string.Join("|", spaceDelimited.Split(new[] {" "}, StringSplitOptions.RemoveEmptyEntries));
string searchPattern = "(" + pipeDelimited + ")";
searchPattern = notInsideBracketsRegex + searchPattern;
// Highlight search terms in Customer - Comments column
e.Row.Cells[CUSTOMERCOMMENTS_COLUMN].Text = Regex.Replace(litCustomerComments.Text, searchPattern, highlightPattern, RegexOptions.IgnoreCase);
Можно использовать regex с балансирующимися группами и обратными ссылками, но я настоятельно рекомендую использовать синтаксический анализатор здесь.
Хм, я не программист C#, таким образом, я не знаю разновидность regex, который она использует, но (?! <. +?>), должен проигнорировать что-либо в тегах. Это вынудит Вас использовать < > в Вашем HTML-коде, но необходимо делать это так или иначе.
Запись regex, который может обработать разделы CDATA, будет трудной. Вы больше не можете предполагать, что> закрывает тег.
Например, "<span class="CustomerName>Fred.</span> is a good customer (<![CDATA[ >10000$ ]]> )"
Решением является (как отмечено ранее) синтаксический анализатор. Они намного лучше имея дело с видом путаницы, которую Вы находите в a CDATA
. madgnome's назад проверяет, не может использоваться для нахождения запуска <![CDATA
от a ]]>
, как a CDATA
раздел может включать литерал <![CDATA
.