Описание
(?:(?=(?:(for)$)?)(for))
** Для того, чтобы увидеть изображение лучше, просто щелкните правой кнопкой мыши на изображение и выберите пункт Открыть в новом окне
Это регулярное выражение будет делать следующее:
- имитировать включает и завершает функции
- , если строка содержит подстроку
for
, тогда группа захвата 2 будет заполнена.
- если строка заканчивается
for
, тогда группа захвата 1 будет заполнена.
Примечание:
- В Javascript вы можете запустить матч затем использовать .index свойства матча вернуть позиции символа матча.
- Это регулярное выражение, подстрока
for
также будет соответствовать, если подстрока находится внутри других слов, таких как before
, но это, похоже, выходит за рамки настоящего вопроса.
Пример
Демо
https://regex101.com/r/bO5vO3/1
Пример текста
Are these the droids for we for are looking for? These are not the droids you are looking for
Match: ^1^ ^2^ ^3^ ^4^
Вторая линия, показывающая Positio ns был вставлен вручную для иллюстрации и не должен рассматриваться как часть фактического текста примера.
Образец Матчи
MATCH 1
2. `for`
MATCH 2
2. `for`
MATCH 3
2. `for`
MATCH 4
1. `for`
2. `for`
Пояснение
NODE EXPLANATION
----------------------------------------------------------------------
[\$] any character of: '\$'
----------------------------------------------------------------------
this-translate 'this-translate'
----------------------------------------------------------------------
[(] any character of: '('
----------------------------------------------------------------------
' '\''
----------------------------------------------------------------------
( group and capture to \1:
----------------------------------------------------------------------
(?: group, but do not capture (0 or more
times (matching the most amount
possible)):
----------------------------------------------------------------------
[^'\\] any character except: ''', '\\'
----------------------------------------------------------------------
| OR
----------------------------------------------------------------------
\\ '\'
----------------------------------------------------------------------
. any character except \n
----------------------------------------------------------------------
| OR
----------------------------------------------------------------------
'' '\'\''
----------------------------------------------------------------------
)* end of grouping
----------------------------------------------------------------------
) end of \1
----------------------------------------------------------------------
' '\''
----------------------------------------------------------------------
[)] any character of: ')'
----------------------------------------------------------------------
; ';'
----------------------------------------------------------------------
'/ Ted /' и '/ Ted $ /' и 'Array.prototype.some'? –
Хотелось бы, чтобы люди добавляли комментарии, когда они сбрасывали вниз. В основном, покажите, что вы пробовали, и люди больше готовы помочь, а не просто писать код для вас. – SoluableNonagon
Да, нужна дополнительная информация, что вы подразумеваете под «другими строками»? Не могли бы вы просто искать другие строки один за другим через цикл, используя строку «ted»? В этом случае, я думаю, вы хотите, чтобы в конце выражения было \ g regex (g означает глобальное), он будет искать всю строку для всех вхождений в строку, которую вы ищете. –