Regex вы хотите:
/(^|[^.])\.{3}([^.]|$)/g
заменой JS вы хотите:
text.replace(/(^|[^.])\.{3}([^.]|$)/g, '$1FOUND!$2');
Вот ломаются из Regex:
(^|[^.])
: Нет символов ^
или |
символ, который не является точкой [^.]
\.{3}
: следуют три точки
([^.]|$)
следует символ, это не точка [^.]
или |
конец строки $
$1
: Включите сначала захватить группу
$2
: Включите последнюю группу захвата
Единственным недостатком этого метода является то, что любые комбинации ...
, разделенные одним символом эр будет пропущен, так что вам придется запустить замену дважды:
... ... ... ... ... ... => FOUND!!! ... FOUND!!! ... FOUND!!! FOUND!!!
Тест строка:
"This should be found -> ... \
This should not be found -> .... \
Something will be found here -> .. .. ...... ... .. \
Multiple found -> ... ... .. ... ... .. \
... <- That's found \
Next line will be found \
..."
Выход 1 итерации:
"This should be found -> FOUND!
This should not be found -> ....
Something will be found here -> .. .. ...... FOUND! ..
Multiple found -> FOUND! ... .. FOUND! ... ..
FOUND! <- That's found
Next line will be found
FOUND!"
Выход 2 повторениями:
"This should be found -> FOUND!
This should not be found -> ....
Something will be found here -> .. .. ...... FOUND! ..
Multiple found -> FOUND! FOUND! .. FOUND! FOUND! ..
FOUND! <- That's found
Next line will be found
FOUND!"
Вы должны создать группу захвата инкапсулируя поиска в скобках. '/ (\. {3})/g' – somethinghere
Ах, проблема старого вопроса с JS .. Также' hello ... world ... what' имеет два набора из 3 точек – sln