Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:128752 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by lists.php.net (Postfix) with ESMTPS id C95C31A00BC for ; Wed, 1 Oct 2025 09:01:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1759309206; bh=+M7tzqLlHIc2veuoCTkj/MMTkqbMjVUKOQQbIopydkc=; h=From:Date:Subject:To:From; b=bgbPS+HoMH5BhgYs9vkm3nkrxsMx0zuDpjv0c/5Y9MNJL6RN+RW/kXUq+dZG10EoR oDAxTsVhiyK1p3smd4Tp15tRWPQHeU7UUv+FTDpQ/8IR55E+MH2obRsQOfRsEwD6iz B6BQT3tPvSGqeln5b1f7UaFkkqpoUL6liwwZRcOrpDEO7Iw4UBPiIENumONbcLB9Ih nZJg4bW1E3afKiJQHSAfP+mCIoaTrT0nOC/rgkgf2VV2p2mnYzvOuAoqBc74eDMj2I M030n3X3AW9ZXq+QskoWn6dQ2UjxLQokZgDLx7vIRli/gUEvd4wnnXec20gd5Zog0j CwwPs3sAhl3oA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 99CA118006E for ; Wed, 1 Oct 2025 09:00:02 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=BAYES_40,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,FREEMAIL_FROM, HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE, T_SPF_TEMPERROR autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: No X-Envelope-From: Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Wed, 1 Oct 2025 09:00:02 +0000 (UTC) Received: by mail-ed1-f48.google.com with SMTP id 4fb4d7f45d1cf-62fbc90e6f6so12812165a12.3 for ; Wed, 01 Oct 2025 02:01:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1759309280; x=1759914080; darn=lists.php.net; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=+M7tzqLlHIc2veuoCTkj/MMTkqbMjVUKOQQbIopydkc=; b=XmHz7RxDUciI1bbDSqZhz1S8I7dlZcRaTYmuyHjNOFQwOqQejnuUm2+6uIvAP7uQ3a gtKUnx3Dd6WrecQ7JP5+etDOY538eCIF5ysDPNOnhRW/CXKpKaUK+S3jZpW3tGADLKUx NZxzHBzisjWcLv6WNvbeKOiCdJONKuswUB1mBU5HbbscRZe7oV5BHnEgdMbYeI3RKfZS JvgcAZEPgB/L0wwp/Gnp6k9khcbA/UloMVe+RPoJte/ffweALNn9sSjuL0QfNZmTWYD2 HidfJY5CE/IR5l9KRiky8k+UgAV05ArnIuT40sTRMGknl+2+jfilEFPT1RHRxWRlwWIC CFnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759309280; x=1759914080; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=+M7tzqLlHIc2veuoCTkj/MMTkqbMjVUKOQQbIopydkc=; b=v6+alLWgqdms6EHLFtf6TZfDw09tfOeqrFmb0j/uHxbbJK1Hy6IE/QFGkyUsOwoDQy O2/Mp4kwFw6Suw+BL4CNRBnW/FXGwvp44iJn0JvGZKjCdxX9rDSI8YoaI9caWwSxbosx OAbgBOqfMUDkecJTJ4KX7i+B0rap1FBrFRIvt5oSj3iEgTv9awU6HW23l9lEx0oEQ8iA 7aMATxjclThE4BfVmjQKg1MDmI4T8dFahVHx7F+27fnFutX4mqN6MhpNMnJ3+VRxTHQb 1DmvaKElkWs5rheglVg+cbQ+fXcXK5CSZpMGIrXDq/MSy8Eio5W8EuDktH2MCO8PtHqb NvJw== X-Gm-Message-State: AOJu0YzhiwXTjkIF2iyXfXzqMKKj10q2ESgrdnFO2LDfp/SlrSzSaFdX tGquwWkmmLM0s0VrUkQyoWXekxpQ/Y1ya4T7NRspQiH06TsA5YpCLVyrY6OhsX+2UEvc2W7msz/ jRKynleYFBQaTdYoW1M4qJUiOOrhkvXTFM98C X-Gm-Gg: ASbGncs6nMXC7mJOXKY0ZwlNiBDfaMWIwqwMmkmhcD8Kk79OWLf6Bl8O2y5gUeisMsX B8AD8APGXlIRQkT/DgH911ERw8I+jeAiXZENw0Ha0x4bAAmHus9+DMSUf9NEF3TX6Vc2KjJFkA1 cIvimYO9kH08a52gtSY8/tS0Lgt9zlcZHvDSeQOSzwdAh1F5oB+GyxAo2see+1rxFEGfi1bnbB/ FSQgdrMMKI9ei2D84+sqa2tzmKIgySJ+lw13Uis7rUuHe9dcvOhnvVV2GXDEKDngQ== X-Google-Smtp-Source: AGHT+IGb+ja87suGDkVlWau4ALAQ5YA+fga24zgXjCDc2C2xoUNmqaTd3REzGOqxonjwuDykY6o3SCYHxC10OEjxvCw= X-Received: by 2002:aa7:d054:0:b0:62f:7968:e1de with SMTP id 4fb4d7f45d1cf-63678d21fb2mr2282010a12.28.1759309279717; Wed, 01 Oct 2025 02:01:19 -0700 (PDT) Precedence: list list-help: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 Date: Wed, 1 Oct 2025 11:01:08 +0200 X-Gm-Features: AS18NWDSuyi8a3yY4FKKv5Zps9Uk5KtqUfPsUn3oA2lp1lHWu_HhdrpJbTcXmNA Message-ID: Subject: [PHP-DEV] [DISCUSSION] Validating regex pattern To: PHP internals list Content-Type: multipart/alternative; boundary="000000000000aaf1120640151cfc" From: alex.daubois+php@gmail.com (Alexandre Daubois) --000000000000aaf1120640151cfc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi everyone, I stumbled across the following issue, proposing to add a way to validate regex. [1] There is currently no way of knowing if a regex pattern is valid, apart from writing clunky code. [2] Two propositions emerged from the issue: either create a dedicated "preg_validate()" function, or add a new flag to "filter_var()", namely FILTER_VALIDATE_REGEX_PATTERN. I would be in favor of the latter. The approach and implementation would surely be simpler. I don't feel like we should do advanced error management. Knowing if a pattern is valid or not would suffice for the vast majority of cases. I don't think the second approach would require an RFC. Christoph thinks that this should at least be announced on the mailing list, so here we are. Looking forward to your feedback. =E2=80=94 Alexandre Daubois [1] https://github.com/php/php-src/issues/9289 [2] https://stackoverflow.com/questions/4440626/how-can-i-validate-regex --000000000000aaf1120640151cfc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi everyone,

I stumbled across the foll= owing issue, proposing to add a way to validate regex. [1]

There is currently no way of knowing if a regex=C2=A0pattern is va= lid, apart from writing clunky code. [2]

Two propo= sitions emerged from the issue: either create a dedicated "preg_valida= te()" function, or add a new flag to "filter_var()", namely = FILTER_VALIDATE_REGEX_PATTERN.

I would be in favor= of the latter. The approach and implementation would surely be simpler. I = don't feel like we should do advanced error management. Knowing if a pa= ttern is valid or not would suffice for the vast majority of cases.

I don't think the second approach would require=C2=A0= an RFC. Christoph thinks that this should at least be announced on the mail= ing list, so here we are.

Looking forward to your = feedback.

=E2=80=94 Alexandre Daubois
--000000000000aaf1120640151cfc--