regex101.com
No paid content found
Categories: Other
Build, test and debug regex online with real-time matches and clear explanations. Supports PCRE2, JavaScript, Python and more. Save and share your examples.
Related questions
More questions →What Is Lerna and How Does It Manage JavaScript Monorepos?
Lerna is a build system for managing and publishing multiple JavaScript or TypeScript packages from a single repository. It fits teams that keep several interdependent packages together and need coordinated versioning, publishing, and task running. If you only have one package, or your packages never share code or releases, Lerna adds overhead without much benefit.
The core problem Lerna solves
A monorepo puts many packages in one repository. That makes sharing code easy, but it creates coordination work:
- Which packages changed since the last release?
- What version should each changed package get?
- In what order should packages be published so dependencies exist first?
- How do you run a build or test across all packages without doing it manually?
Lerna addresses these by understanding the dependency graph between your packages and acting on it.
How Lerna manages a monorepo
Versioning
Lerna tracks which packages changed and updates their versions together or independently. It supports two common modes:
- Fixed mode: all packages share one version number and are released together.
- Independent mode: each package gets its own version, so you can release only what changed.
The choice matters. Fixed mode is simpler and suits tightly coupled packages. Independent mode gives finer control but requires more discipline.
Publishing
When you publish, Lerna determines the correct order based on inter-package dependencies, so a package that depends on another is published after its dependency. It can also create git tags and update changelogs as part of the release.
Running tasks across packages
Lerna can run a command (build, test, lint) across multiple packages, and it can scope that to only the packages affected by recent changes. This is the part that saves the most time in large repos, because you avoid rebuilding everything on every change.
Lerna and Nx
Lerna is now part of the Nx ecosystem. The relationship matters when you choose tooling:
- Lerna handles the monorepo versioning and publishing workflow.
- Nx provides the broader task running, caching, and project graph capabilities.
In practice, Lerna can use Nx under the hood for task execution and caching. If you already use Nx, Lerna fits as the release layer. If you only need publishing and versioning, Lerna can stand alone.
Lerna vs. plain npm/yarn workspaces
| Concern | npm/yarn workspaces | Lerna |
|---|---|---|
| Linking local packages | Yes | Yes (builds on workspaces) |
| Coordinated versioning | No | Yes |
| Ordered publishing | No | Yes |
| Changelog generation | No | Yes |
| Running tasks across packages | Limited | Yes, with affected-package scoping |
Workspaces solve dependency linking. Lerna solves the release and task-orchestration layer on top. Many projects use both: workspaces for installation, Lerna for versioning and publishing.
When Lerna is the right choice
Consider Lerna when:
- You maintain multiple packages that depend on each other.
- You need repeatable, ordered releases rather than manual
npm publishper package. - You want to run builds or tests only for packages affected by a change.
- You are already in or moving toward the Nx ecosystem.
Look elsewhere when:
- You have a single package.
- Your packages are released independently by different teams with no shared release process.
- You only need local linking and never publish.
Where to start
Begin with the Lerna documentation at lerna.js.org. The typical first steps are initializing Lerna in an existing repository, defining your package locations, and choosing fixed or independent versioning before your first release. Getting the versioning mode right early avoids a painful migration later.
What Is PHP and What Is It Used For?
PHP is a server-side scripting language used mainly to build dynamic websites and web applications. When a visitor requests a PHP page, the web server runs the PHP code first, then sends the resulting HTML to the browser. You would use PHP when a page needs to change based on user input, stored data, or a database — for example, a login form, a product listing, or a contact form that saves messages. You don't need PHP for a purely static site.
How PHP actually runs
PHP is not executed by the browser. It runs on the web server, which means visitors never see your PHP source code — only the output it produces.
A typical request works like this:
- The browser requests a URL such as
example.com/greet.php. - The web server (commonly Apache) recognizes the
.phpextension and hands the file to the PHP interpreter. - PHP executes the code, which may read a database, check a session, or process form data.
- PHP outputs HTML (or JSON, or an image), and the server sends that output back to the browser.
This is the key difference from JavaScript: JavaScript runs in the browser after the page arrives, while PHP runs on the server before the page is sent.
Common things PHP is used for
- Generating dynamic pages — inserting different content depending on the user, the time, or the URL.
- Handling form submissions — receiving data from an HTML form, validating it, and responding.
- Connecting to databases — reading and writing records in MariaDB or MySQL, which is how most PHP applications store users, posts, and orders.
- Managing sessions and cookies — keeping a user logged in across multiple pages.
- Building APIs — returning JSON so a front-end or mobile app can fetch data.
- Content management systems — WordPress, a widely used CMS, is written in PHP.
A minimal PHP example
<?php
$name = "World";
echo "Hello, " . $name . "!";
?>
When the server runs this, the browser receives only:
Hello, World!
The <?php ... ?> tags mark where PHP code begins and ends. echo sends output to the page. Variables start with $. You can mix PHP blocks with regular HTML in the same file, which is why PHP is convenient for templating.
How PHP fits with Apache and MariaDB
PHP rarely works alone. In a typical stack:
| Component | Role |
|---|---|
| Apache | Web server that receives requests and passes .php files to PHP |
| PHP | Executes application logic and produces output |
| MariaDB / MySQL | Stores the data the PHP code reads and writes |
This combination is often called a LAMP-style stack (Linux, Apache, MySQL/MariaDB, PHP), with variations across operating systems.
Getting started locally with XAMPP
To run PHP on your own machine without configuring each piece separately, you can use an integrated package. XAMPP is one option: according to Apache Friends, it is "a completely free, easy to install Apache distribution containing MariaDB, PHP, and Perl," and it is described as a popular PHP development environment.
The general setup path:
- Download the XAMPP installer for your operating system (Windows, Linux, or OS X versions are listed on the site).
- Run the installer and start the Apache and MySQL/MariaDB modules from the control panel.
- Place your
.phpfiles in the web root directory (commonlyhtdocs). - Open a browser and visit
localhostfollowed by your file path, such aslocalhost/greet.php. - Verify it worked: if you see "Hello, World!" instead of the raw code, PHP is executing correctly.
Common snags: if the browser shows the PHP source code as plain text, the file likely isn't being processed by PHP — check the file extension and that Apache is running. If the page won't load at all, confirm the server is started and the port isn't already in use.
Where PHP is used today
PHP remains widely deployed because it is easy to host, has extensive documentation, and powers a large share of existing websites and CMS platforms. It is a practical choice when you want to build server-rendered web pages, work with an existing PHP codebase, or use a PHP-based CMS. If your goal is a purely static site or a browser-only interface, PHP may be unnecessary.
To decide whether to learn it: choose PHP if you want to build or maintain dynamic, database-driven websites and value a large hosting ecosystem. If you only need client-side interactivity, JavaScript alone may cover your needs.
Website Overview
An established domain and managed infrastructure suggest continuity of operations and may support dependable delivery, although neither guarantees service quality. Page metadata, canonical configuration and social previews work together to provide more consistent search and sharing presentation.
Domain and Registration
Registered in 2012, this domain has about 14 years of history. That suggests continuity, although ownership and purpose may have changed. Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The registrar is NameCheap, Inc., a widely used domain service provider. The domain uses the common .com extension, which is not an independent safety signal.
DNS and Email
MX records exist, but SPF, DKIM and DMARC were not detected. Protection against domain impersonation may be incomplete. Nameservers are provided by Namecheap, indicating managed DNS hosting. MX records point to the Google Workspace email service. No CNAME was found; the observed records resolve directly to addresses. TXT records include verification markers for Google. Such markers may also remain after a service stops being used.
TLS and Certificates
The public key uses EC with 256 bits. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued by Let's Encrypt, commonly associated with automated certificate services. The certificate's total validity is about 89 days, consistent with a short renewal cycle.
HTTP and Browser Security
The response lacks these common security headers: HSTS, Permissions-Policy. CORS permits any origin to read this response. This is common for public resources; sensitive responses need narrower handling. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. No obvious internal addresses or debug information were found in the headers. The Server header identifies nginx without an exact version.
Technology Stack Analysis
The public page identifies nginx without precise versions, leaving fewer clues for version-specific scanning.
Search and Social Sharing
Twitter Card metadata is configured. The title has 49 characters, within a common display range. A meta description is present, with 156 characters. The observed directives allow indexing and link following. No Generator meta tag is publicly exposed.
Hosting and Email
Pages, Search and Sharing
| Meta description | Build, test and debug regex online with real-time matches and clear explanations. Supports PCRE2, JavaScript, Python and more. Save and share your examples. |
|---|---|
| Canonical URL | https://regex101.com/ |
| Language | English (default) |
| Twitter Card | summary_large_image |
Social Sharing Preview
14 fieldsrobots.txt (opens in a new tab)
1 rulesAll bots 0 allowed · 1 disallowed
/api/- Interval
Crawl delay 2 seconds
No matching rules.
Sitemaps
1
Registration details RDAP / WHOIS
| Registrar | NameCheap, Inc. |
|---|---|
| Registered | 2012-08-15 |
| Expires | 2027-08-15 |
| Domain status | client transfer prohibited |
| Nameservers | dns1.registrar-servers.com、dns2.registrar-servers.com |
| DNSSEC | unsigned |
DNS records
| Type | Name | Value | TTL | Priority |
|---|---|---|---|---|
| A | regex101.com | 78.47.220.195 | 866 | — |
| AAAA | regex101.com | 2a01:4f8:1c1c:13a4::1 | 300 | — |
| MX | regex101.com | smtp.google.com | 1799 | 1 |
| NS | regex101.com | dns1.registrar-servers.com | 1800 | — |
| NS | regex101.com | dns2.registrar-servers.com | 1800 | — |
| TXT | regex101.com | google-site-verification=e3kdGikhQf2oBB_SquqmSxSnG-lMK1_3i2dGXNBZprA | 300 | — |
| DMARC | _dmarc.regex101.com | abuseipdb-verification=4D7a5L1z | 1799 | — |
TLS and certificates
| Assessment | Normal configuration |
|---|---|
| Supported protocols | TLSv1.2、TLSv1.3 |
| Negotiated protocol | TLSv1.3 |
| Certificate subject | regex101.com |
| Issuer | Let's Encrypt |
| Valid until | 2026-11-23T23:35 · Remaining when checked: 59 days |
| Verification details | Certificate trust: Passed · Hostname match: Passed |
HTTP response headers
| Header | Value |
|---|---|
| content-type | text/html; charset=utf-8 |
| server | nginx |
| content-security-policy | default-src 'self' 'unsafe-eval' http: https: data: blob: 'unsafe-inline'; script-src 'self' 'unsafe-eval' 'unsafe-inline' https://cdn.paddle.com https://public.profitwell.com https://analytics.regex101.com https://challenges.cloudflare.com; worker-src 'self' blob:; img-src 'self' data: blob: https://avatars.githubusercontent.com https://lh3.googleusercontent.com https://*.buysellads.com https://*.buysellads.net https://*.carbonads.net https://*.doubleclick.net; object-src 'none'; base-uri 'self'; form-action 'self' |
| x-frame-options | SAMEORIGIN |
| x-content-type-options | nosniff |
| referrer-policy | strict-origin-when-cross-origin |
| access-control-allow-origin | * |
User reviews (0)