Regex целевое конкретное слово, основанное на двух начальных условиях

У меня есть ряд строк в текстовой области (в частности, окно codeMirror). Я хочу изменить цвет (выбрать) всех экземпляров слова (например, string1), если строка начинается с определенного другого слова (например, string2). Между строкой 2 и строкой 1 может быть любое количество слов, если оно существует.

Я совсем новичок в regex, все примеры, которые я могу найти для этой цели, все строки от string2 до string1, а не только string1.

Спасибо за помощь!

Редактировать:

Я уже разработал, я могу нацелить всю строку, используя^string2(.*string1.*)$, но чтобы уточнить, я ищу, чтобы нацелить только слово «string1″, если строка, что string1 находится на начинается с » string2″

1 ответ

  1. целевое назначение всех строк, начиная с string2 и содержащих string1:

    ^(string2.*?)string1(.*)$
    

    теперь,

    to target all lines starting with string2 and containing string1:

    ^(string2.*?)string1(.*)$
    

    now, $1 has the first part of the line before string1, and $2 has the part of the line after string1.

    ...which would let use a replacement string of your choosing, for example to turn all string1 red (not sure if this is html or not but you get the idea):

    $1<span class='red'>string1</span>$2
    

    имеет первую часть линии до string1, и имеет часть линии после string1.

    …что позволит использовать строку замены по вашему выбору, например, чтобы превратить все string1красное (не уверен, если это html или нет, но вы получите идею):

    
    	

    to target all lines starting with string2 and containing string1:

    ^(string2.*?)string1(.*)$
    

    now, $1 has the first part of the line before string1, and $2 has the part of the line after string1.

    ...which would let use a replacement string of your choosing, for example to turn all string1 red (not sure if this is html or not but you get the idea):

    $1<span class='red'>string1</span>$2
    

    <span class='red'>string1</span>