( FeriX | 2023. 12. 03., v – 10:26 )

(\w+)\s*=\s*(?:(?:"([^"]*)"|'([^']*)'|([^;\n"']+))\s*(?:;|$))

Most elolvastam a közbenső igényeket is, és itt tesztelhető: https://regex101.com/r/KmWmNf/3

A magyar leírás benne van a linkben is archiválás céljából.

 

  1. (\w+) - Elkapja a paraméter nevét.
  2. \s*=\s* - Keresi az egyenlőségjelet a felesleges szóközökkel együtt.
  3. (?:"([^"]*)"|'([^']*)'|([^;\n"']+)) - Elkapja az értéket a következő feltételekkel:
  4. "[^"]*": Dupla idézőjelek közötti szöveget, ami nem tartalmaz további dupla idézőjeleket.
  5. '[^']*': Egyszerű idézőjelek közötti szöveget, ami nem tartalmaz további egyszerű idézőjeleket.
  6. [^;\n"']+: Szöveget, ami nem tartalmaz sem pontosvesszőt, sem sorvégét, sem idézőjelet.
  7. \s*(?:;|$) - Keres egy opcionális sorvégi vagy pontosvessző elválasztót.