Существуют различные ресурсы:
Относительно фактического выражениясимволы /
отмечают начало и конец литерала регулярного выражения (как в кавычках для строки, хотя за окончанием /
могут следовать флаги), а затем:
+------------- 1
|+------------ 2
||+----------- 3
||| +--------- 4
||| |
||| |
||| | +------- 5
||| | | +----- 6
||| | | | +--- 7
||| | | | |+-- 8
|||/ \|/ \||
/(;)(?![";"])/
(
запускает группу захвата в этом случае (потому что (
не сопровождается ?
, =
или !
, которые изменяют то, что он делает) ;
является литералом, он соответствует точке с запятой )
завершает группу захвата (?!
Запускает «отрицательный прогноз», поэтому общее выражение совпадает, только если то, что находится внутри скобок, непосле точки с запятой [
начинается класс символов, который соответствует любому символувнутри него ";"
- символы в классе символов.(Второй "
является избыточным.) Класс содержит символы ;
и "
. ]
завершает класс символов )
завершает начатый отрицательный просмотрв # 4
Итак, в целом, сопоставьте (и перехватите) точку с запятой, если сразу за ней не следует кавычка или точка с запятой.Я не вижу какой-либо конкретной причины для захвата точки с запятой, но, возможно, была причина в контексте вопроса, где это было рекомендовано.