# Regular expression

A regular expression is a pattern language used to specify and match sets of character strings, including through programming interfaces such as Python's re module and POSIX functions.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Minimizing the length of regular expressions, in practice

DevFeed: [Minimizing the length of regular expressions, in practice](<https://devfeed.tech/articles/minimizing-the-length-of-regular-expressions-in-practice-27405.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/shortest-regex.htm>)

Author: Khan Academy

Published: 2016-05-23T22:00:00Z

Content type: tutorial

Language: en

Sources: [Khan Academy](<https://devfeed.tech/sources/khan-academy.md>)

Topics: [Algorithms, Complexity](<https://devfeed.tech/topics/algorithms-complexity.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [cloud-infrastructure](<https://devfeed.tech/topics/cloud-infrastructure.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [cdn](<https://devfeed.tech/tags/cdn.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [google](<https://devfeed.tech/tags/google.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [news](<https://devfeed.tech/tags/news.md>), [re](<https://devfeed.tech/tags/re.md>), [repository](<https://devfeed.tech/tags/repository.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>)

### AI overview

Craig Silverstein explains how Khan Academy needed a compact regular expression to distinguish static URLs from dynamic URLs for CDN routing. The article describes why simple patterns were unsuitable, reports that a naive generated expression reached 402,025 characters, and introduces a second approach that reduced the length to 2,400 characters.

### Source excerpt

By Craig Silverstein The problem Software engineering interviews tend to be full of "algorithms" questions, because they're easy ... Read more

## Your redaction filter works. Are you quite sure?

DevFeed: [Your redaction filter works. Are you quite sure?](<https://devfeed.tech/articles/your-redaction-filter-works-are-you-quite-sure-12662.md>)

Original publisher: [Read original article](<https://tyk.io/blog/your-redaction-filter-works-are-you-quite-sure/>)

Author: Hal Tyk's tutorial bot

Published: 2026-09-03T09:03:23Z

Content type: tutorial

Language: en

Sources: [Tyk API Management](<https://devfeed.tech/sources/tyk-api-management.md>)

Topics: [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [pii](<https://devfeed.tech/topics/pii.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Script](<https://devfeed.tech/topics/script.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [payload](<https://devfeed.tech/topics/payload.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [ai-gateway](<https://devfeed.tech/tags/ai-gateway.md>), [ai-studio](<https://devfeed.tech/tags/ai-studio.md>), [api](<https://devfeed.tech/tags/api.md>), [api-management](<https://devfeed.tech/tags/api-management.md>), [api-platform-teams](<https://devfeed.tech/tags/api-platform-teams.md>), [data-privacy](<https://devfeed.tech/tags/data-privacy.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [llm-governance](<https://devfeed.tech/tags/llm-governance.md>), [payload](<https://devfeed.tech/tags/payload.md>), [pii](<https://devfeed.tech/tags/pii.md>), [pii-redaction](<https://devfeed.tech/tags/pii-redaction.md>), [tengo](<https://devfeed.tech/tags/tengo.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial explains how to create and test a Tyk request filter that redacts personal data before a request reaches an AI model. It covers Enterprise licensing, request and response filter behavior, the PII Redaction template, and the Tengo scripting contract using the Tyk module and regular expressions.

### Source excerpt

Hello. I'm Hal, Tyk's tutorial bot, and today I have been given something genuinely useful to explain: how to stop personal data reaching a model in the first place. We are going to write a filter, find a gap in it before a single request has been sent, fix the gap, and only then let [...] The post Your redaction filter works. Are you quite sure? appeared first on Tyk API Management.

## Introducing pg\_re2, fast, RE2-powered regular expressions in Postgres

DevFeed: [Introducing pg\_re2, fast, RE2-powered regular expressions in Postgres](<https://devfeed.tech/articles/introducing-pg-re2-fast-re2-powered-regular-expressions-in-postgres-5337.md>)

Original publisher: [Read original article](<https://clickhouse.com/blog/introducing-pg_re2-regex-in-postgres>)

Author: David Wheeler; Philip Dubé

Published: 2026-07-08T18:12:04Z

Content type: article

Language: en

Sources: [ClickHouse Blog](<https://devfeed.tech/sources/clickhouse-blog.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Extension](<https://devfeed.tech/topics/extension.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [Finite-state machine](<https://devfeed.tech/topics/finite-state-machine.md>), [Automaton](<https://devfeed.tech/topics/automaton.md>), [clickhouse](<https://devfeed.tech/topics/clickhouse.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [article](<https://devfeed.tech/tags/article.md>), [aws](<https://devfeed.tech/tags/aws.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [benchmarks](<https://devfeed.tech/tags/benchmarks.md>), [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [extension](<https://devfeed.tech/tags/extension.md>), [open](<https://devfeed.tech/tags/open.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [performance](<https://devfeed.tech/tags/performance.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

This article introduces pg_re2, a PostgreSQL extension that adds fast RE2-powered regular expression functions. It explains the performance and compatibility rationale, compares RE2 with PostgreSQL's native engine, and reports benchmark results showing RE2 outperforming the native functions in the tested cases.

### Source excerpt

Introducing pg_re2, a Postgres extension that brings ClickHouse's fast RE2-powered regular expressions to Postgres, with benchmarks and pg_clickhouse pushdown integration.

## What's New in pg\_clickhouse v0.3.2: Postgres 19, TLS, Regex, and Memory

DevFeed: [What's New in pg\_clickhouse v0.3.2: Postgres 19, TLS, Regex, and Memory](<https://devfeed.tech/articles/what-s-new-in-pg-clickhouse-v0-3-2-postgres-19-tls-regex-and-memory-5491.md>)

Original publisher: [Read original article](<https://clickhouse.com/blog/pg_clickhouse-whats-new-june-2026>)

Author: David Wheeler

Published: 2026-06-23T11:25:40Z

Content type: release

Language: en

Sources: [ClickHouse Blog](<https://devfeed.tech/sources/clickhouse-blog.md>)

Topics: [releases](<https://devfeed.tech/topics/releases.md>), [clickhouse](<https://devfeed.tech/topics/clickhouse.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [TLS (Transport Layer Security)](<https://devfeed.tech/topics/tls.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [compression](<https://devfeed.tech/tags/compression.md>), [http](<https://devfeed.tech/tags/http.md>), [memory](<https://devfeed.tech/tags/memory.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [releases](<https://devfeed.tech/tags/releases.md>), [tls](<https://devfeed.tech/tags/tls.md>)

### AI overview

pg_clickhouse v0.3.2 adds PostgreSQL 19 Beta 1 support, new TLS connection options, corrected regular-expression pushdown behavior, and fixes for memory-consumption issues. The release also adds ClickHouse native protocol compression for query results and data, plus additional pushdown improvements.

### Source excerpt

The latest pg_clickhouse releases bring JSONB, date/time, and array function pushdown, plus HTTP result set streaming for lower memory usage.

## Solving regex crosswords with Z3

DevFeed: [Solving regex crosswords with Z3](<https://devfeed.tech/articles/solving-regex-crosswords-with-z3-21962.md>)

Original publisher: [Read original article](<https://blog.nelhage.com/post/regex-crosswords-z3/>)

Author: Nelson Elhage

Published: 2025-10-21T14:00:00Z

Content type: tutorial

Language: en

Sources: [Nelson Elhage](<https://devfeed.tech/sources/nelson-elhage.md>)

Topics: [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Automaton](<https://devfeed.tech/topics/automaton.md>), [Finite-state machine](<https://devfeed.tech/topics/finite-state-machine.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [dfa](<https://devfeed.tech/tags/dfa.md>), [experimentation](<https://devfeed.tech/tags/experimentation.md>), [performance](<https://devfeed.tech/tags/performance.md>), [python](<https://devfeed.tech/tags/python.md>), [regex](<https://devfeed.tech/tags/regex.md>)

### AI overview

This technical post explains how to solve regular-expression crossword puzzles with a Z3-backed solver. It describes encoding regular expressions as deterministic finite automata, using a Python library to convert regex syntax to finite-state machines, and exploring solver performance and implementation improvements.

### Source excerpt

For a while now, I've been fascinated by Z3 and by SMT solving more broadly. While on pat leave recently, I was reminded of the existence of regular-expression crossword puzzles, and allowed myself to get nerdsniped by writing a Z3-backed solver. I expected to spend perhaps an afternoon cranking out a quick solver; I ended up getting sucked into understanding and debugging Z3 performance, and learning far more about Z3 and about SMT than I expected.

## Repeater Strike: manual testing, amplified

DevFeed: [Repeater Strike: manual testing, amplified](<https://devfeed.tech/articles/repeater-strike-manual-testing-amplified-7694.md>)

Original publisher: [Read original article](<https://portswigger.net/research/repeater-strike-manual-testing-amplified>)

Author: Gareth Heyes

Published: 2025-07-15T13:46:37Z

Content type: article

Language: en

Sources: [PortSwigger Research](<https://devfeed.tech/sources/portswigger-research.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Extension](<https://devfeed.tech/topics/extension.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [JSON](<https://devfeed.tech/topics/json.md>), [API keys](<https://devfeed.tech/topics/api-keys.md>), [Java](<https://devfeed.tech/topics/java.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-models](<https://devfeed.tech/tags/ai-models.md>), [extension](<https://devfeed.tech/tags/extension.md>), [json](<https://devfeed.tech/tags/json.md>), [parameter](<https://devfeed.tech/tags/parameter.md>), [re](<https://devfeed.tech/tags/re.md>), [security](<https://devfeed.tech/tags/security.md>), [testing](<https://devfeed.tech/tags/testing.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

This article introduces Repeater Strike, an AI-powered Burp Suite extension that automates vulnerability hunting from Repeater traffic. It analyzes requests and responses, generates regular expressions, scans proxy history for related IDOR and similar vulnerabilities, and validates findings before creating reusable Strike Rules.

### Source excerpt

Manual testing doesn't have to be repetitive. In this post, we're introducing Repeater Strike - a new AI-powered Burp Suite extension designed to automate the hunt for IDOR and similar vulnerabilities

## Limit the Scope of Git Diff

DevFeed: [Limit the Scope of Git Diff](<https://devfeed.tech/articles/limit-the-scope-of-git-diff-11136.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/02/limit-scope-git-diff/>)

Published: 2025-02-17T06:41:00Z

Content type: tutorial

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [Git](<https://devfeed.tech/topics/git.md>), [YAML](<https://devfeed.tech/topics/yaml.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [BGP](<https://devfeed.tech/topics/bgp.md>)

Tags: [display](<https://devfeed.tech/tags/display.md>), [expression](<https://devfeed.tech/tags/expression.md>), [files](<https://devfeed.tech/tags/files.md>), [flag](<https://devfeed.tech/tags/flag.md>), [git](<https://devfeed.tech/tags/git.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [parameter](<https://devfeed.tech/tags/parameter.md>), [tests](<https://devfeed.tech/tags/tests.md>), [time](<https://devfeed.tech/tags/time.md>), [worth-reading](<https://devfeed.tech/tags/worth-reading.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

This article explains how to use Git diff options to identify meaningful changes in YAML-based netlab integration test results when timestamps and version metadata make ordinary diffs noisy. It discusses filtering diffs with a regular expression and limiting output to files or test suites containing relevant changes.

### Source excerpt

The results of netlab integration tests are stored in YAML files, making it easy to track changes improvements with Git. However, once I added the time of test and netlab version to the test results, I could no longer use git diff to figure out which test results changed after a test run - everything changed. For example, these are partial test results from the OSPFv2 tests: Read more ...

## Carnival of Mathematics #233

DevFeed: [Carnival of Mathematics #233](<https://devfeed.tech/articles/carnival-of-mathematics-233-40458.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2022/11/01/carnival-of-mathematics-233/>)

Published: 2024-11-01T07:00:00Z

Content type: article

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [math](<https://devfeed.tech/topics/math.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [Nvidia](<https://devfeed.tech/topics/nvidia.md>), [clustering](<https://devfeed.tech/topics/clustering.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [carnival](<https://devfeed.tech/tags/carnival.md>), [clustering](<https://devfeed.tech/tags/clustering.md>), [fibonacci](<https://devfeed.tech/tags/fibonacci.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [nvidia](<https://devfeed.tech/tags/nvidia.md>), [python](<https://devfeed.tech/tags/python.md>), [regex](<https://devfeed.tech/tags/regex.md>)

### AI overview

A roundup of mathematics news and media from October 2022, including a newly reported largest known prime, mathematical research, discussions of political geography and clustering, and videos about voting paradoxes, polylinks, and prime-recognizing regular expressions.

### Source excerpt

Welcome to the 233rd Carnival of Mathematics! Who can forget 233, the 6th Fibonacci prime? Hey, not all numbers are interesting. Don't ask me about the smallest positive uninteresting number. You can't make it interesting with your feeble mind tricks! Anyway, on to the fun. Provers and Shakers The big discovery this month was a new largest known prime number, $2^{136279841} - 1$, as reported by the Great Internet Mersenne Prime Search.

## Blog: Introducing Falco 0.39.0

DevFeed: [Blog: Introducing Falco 0.39.0](<https://devfeed.tech/articles/blog-introducing-falco-0-39-0-32487.md>)

Original publisher: [Read original article](<https://falco.org/blog/falco-0-39-0/>)

Published: 2024-10-01T00:00:00Z

Content type: release

Language: en

Sources: [Falco - Falco](<https://devfeed.tech/sources/falco-falco.md>), [Falco - The Falco blog](<https://devfeed.tech/sources/falco-the-falco-blog.md>)

Topics: [version](<https://devfeed.tech/topics/version.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Unix](<https://devfeed.tech/topics/unix.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [User experience (UX)](<https://devfeed.tech/topics/ux.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [bug-fixes](<https://devfeed.tech/tags/bug-fixes.md>), [falco](<https://devfeed.tech/tags/falco.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [library](<https://devfeed.tech/tags/library.md>), [new-features](<https://devfeed.tech/tags/new-features.md>), [regex](<https://devfeed.tech/tags/regex.md>), [release](<https://devfeed.tech/tags/release.md>), [unix](<https://devfeed.tech/tags/unix.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

Falco 0.39.0 introduces new operators for basename extraction and regular-expression matching, appendable output fields, schema validation for configuration and rules files, improved Kubernetes engine selection, and other performance and UX improvements. The release also includes bug fixes and breaking changes.

### Source excerpt

Dear Falco Community, today we are happy to announce the release of Falco 0.39.0! This version brings several new features, performance improvements, and bug fixes that streamline Falco's detection capabilities. During this release cycle, we merged more than 50 PRs on Falco and more than 100 PRs for libs and drivers, version 0. 18.0 and version 7.3.0 respectively. Thank you to our maintainers and contributors, as this would not happen without your support and dedication! To learn all about these changes, read on! What's new? TL;DR Key features: Basename operator retrieves the basename of a given path; New fields added in proc and fd classes #1916 #1936; Regular expression operator can be used to match values in string fields; Append output allows to add output text or fields to a subset of loaded rules; Schema validation for config and rules files allows Falco to warn users when unknown keys are used; Improved engine selection in Kubernetes environments driver loader will automatically pick the most compatible driver for each node in the cluster. This release also comes with breaking changes that you should be aware of before upgrading. Major features and improvements The 0.39.0 release contains a number of feature and UX improvements, here are list of some of the key new capabilities. New Operators The basename() transformer operator extracts the base name, i.e. the filename without directory, of the input field. Note that the behavior ofbasename() in Falco is slightly different from the Unix basename program. For instance, basename (proc.exepath) will evaluate to "cat" for /usr/bin/cat but will evaluate to an empty string ("") for /usr/bin/. This allows, for instance, to write expressions like basename(proc.exepath) = cat to match against the original executable name even if it has been symlinked without knowing the full path, or any other file name based detection. The regex operator checks if a string field matches a regular expression. Please note that the rege

## A denial of service Regex breaks FastAPI security

DevFeed: [A denial of service Regex breaks FastAPI security](<https://devfeed.tech/articles/a-denial-of-service-regex-breaks-fastapi-security-7897.md>)

Original publisher: [Read original article](<https://snyk.io/blog/dos-regex-breaks-fastapi-security/>)

Author: Liran Tal

Published: 2024-07-31T13:00:00Z

Content type: article

Language: en

Sources: [Blog RSS Feed | Snyk](<https://devfeed.tech/sources/blog-rss-feed-snyk.md>)

Topics: [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Application Security](<https://devfeed.tech/topics/application-security.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Python](<https://devfeed.tech/topics/python.md>), [snyk](<https://devfeed.tech/topics/snyk.md>), [DDoS](<https://devfeed.tech/topics/ddos.md>)

Tags: [acquisition](<https://devfeed.tech/tags/acquisition.md>), [application-security](<https://devfeed.tech/tags/application-security.md>), [blog](<https://devfeed.tech/tags/blog.md>), [developer](<https://devfeed.tech/tags/developer.md>), [devrel](<https://devfeed.tech/tags/devrel.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [python](<https://devfeed.tech/tags/python.md>), [regex](<https://devfeed.tech/tags/regex.md>), [security](<https://devfeed.tech/tags/security.md>), [snyk](<https://devfeed.tech/tags/snyk.md>), [snyk-open-source](<https://devfeed.tech/tags/snyk-open-source.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

This article explains how insecure regular expressions can cause regular expression denial of service (ReDoS) vulnerabilities in FastAPI applications. It describes how malicious input can trigger excessive evaluation time, making an application slow or unresponsive, and discusses using Snyk to identify and mitigate these risks in Python code and third-party dependencies.

### Source excerpt

In this blog post, we are going to delve deep into the world of application security, specifically focusing on a vulnerability that can deteriorate FastAPI security: Denial of service (DoS) caused by insecure regular expressions (regex).

## Extract a Number from a String with JavaScript

DevFeed: [Extract a Number from a String with JavaScript](<https://devfeed.tech/articles/extract-a-number-from-a-string-with-javascript-37487.md>)

Original publisher: [Read original article](<https://davidwalsh.name/javascript-extract-string>)

Author: David Walsh

Published: 2024-01-16T11:48:41Z

Content type: tutorial

Language: en

Sources: [David Walsh](<https://devfeed.tech/sources/david-walsh.md>)

Topics: [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [HTML](<https://devfeed.tech/topics/html.md>)

Tags: [html](<https://devfeed.tech/tags/html.md>), [input](<https://devfeed.tech/tags/input.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [javascript-quick-tips](<https://devfeed.tech/tags/javascript-quick-tips.md>), [numbers](<https://devfeed.tech/tags/numbers.md>), [quick-tips](<https://devfeed.tech/tags/quick-tips.md>), [regular-expressions](<https://devfeed.tech/tags/regular-expressions.md>), [string](<https://devfeed.tech/tags/string.md>)

### AI overview

This tutorial explains how to extract numbers from strings in JavaScript, particularly user input from HTML form fields, using regular expressions.

### Source excerpt

User input from HTML form fields is generally provided to JavaScript as a string. We've lived with that fact for decades but sometimes developers need to extract numbers from that string. There are multiple ways to get those numbers but let's rely on regular expressions to extract those numbers! To employ a regular expression to [...] The post Extract a Number from a String with JavaScript appeared first on David Walsh Blog.

## Supercharging Continuous Integration with Gradle

DevFeed: [Supercharging Continuous Integration with Gradle](<https://devfeed.tech/articles/supercharging-continuous-integration-with-gradle-15901.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/supercharging-continuous-integration-with-gradle>)

Author: Paul Hundal

Published: 2023-07-27T14:00:00Z

Content type: article

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [ci](<https://devfeed.tech/topics/ci.md>), [build times](<https://devfeed.tech/topics/build-times.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [bazel](<https://devfeed.tech/topics/bazel.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [automated](<https://devfeed.tech/tags/automated.md>), [bazel](<https://devfeed.tech/tags/bazel.md>), [build](<https://devfeed.tech/tags/build.md>), [build-times](<https://devfeed.tech/tags/build-times.md>), [caching](<https://devfeed.tech/tags/caching.md>), [ci](<https://devfeed.tech/tags/ci.md>), [code](<https://devfeed.tech/tags/code.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [development](<https://devfeed.tech/tags/development.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [performance](<https://devfeed.tech/tags/performance.md>), [test](<https://devfeed.tech/tags/test.md>)

### AI overview

This article describes Square's efforts to improve continuous integration for a large Gradle-based Android project. It discusses Kochiku, an open-source CI tool used for automated sharding, scheduling, and distributed caching, and explains shard avoidance based on build-graph changes.

### Source excerpt

Unveiling the journey of shard avoidance and Bazel-like queryability

## New reference pages on MDN for JavaScript regular expressions

DevFeed: [New reference pages on MDN for JavaScript regular expressions](<https://devfeed.tech/articles/new-reference-pages-on-mdn-for-javascript-regular-expressions-4112.md>)

Original publisher: [Read original article](<https://developer.mozilla.org/en-US/blog/regular-expressions-reference-updates/>)

Author: brian-smith

Published: 2023-05-23T00:00:00Z

Content type: article

Language: en

Sources: [MDN Blog](<https://devfeed.tech/sources/mdn-blog.md>)

Topics: [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [browser](<https://devfeed.tech/topics/browser.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [accelerators](<https://devfeed.tech/tags/accelerators.md>), [browser](<https://devfeed.tech/tags/browser.md>), [cheat-sheet](<https://devfeed.tech/tags/cheat-sheet.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [docs](<https://devfeed.tech/tags/docs.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [github](<https://devfeed.tech/tags/github.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [search](<https://devfeed.tech/tags/search.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

MDN Web Docs has published 18 new reference pages for individual JavaScript regular-expression features. The pages provide more comprehensive syntax and semantics information, include browser compatibility details, remove deprecated content, and organize the material into sections such as flags, assertions, atoms, and other features.

### Source excerpt

See the latest updates to the MDN reference pages about JavaScript regular expressions, including new sections on sub-features and browser compatibility information.

## Thursday February 16 2023 Security Releases

DevFeed: [Thursday February 16 2023 Security Releases](<https://devfeed.tech/articles/thursday-february-16-2023-security-releases-2878.md>)

Original publisher: [Read original article](<https://nodejs.org/en/blog/vulnerability/february-2023-security-releases>)

Published: 2023-02-16T21:00:00Z

Content type: release

Language: en

Sources: [Node.js Blog](<https://devfeed.tech/sources/node-js-blog.md>)

Topics: [Node.js](<https://devfeed.tech/topics/node-js.md>), [Security](<https://devfeed.tech/topics/security.md>), [vulnerability](<https://devfeed.tech/topics/vulnerability.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [attacks](<https://devfeed.tech/tags/attacks.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [cves](<https://devfeed.tech/tags/cves.md>), [errors](<https://devfeed.tech/tags/errors.md>), [http](<https://devfeed.tech/tags/http.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [openssl](<https://devfeed.tech/tags/openssl.md>), [releases](<https://devfeed.tech/tags/releases.md>), [security](<https://devfeed.tech/tags/security.md>), [vulnerability](<https://devfeed.tech/tags/vulnerability.md>)

### AI overview

Node.js published security updates for the 19.x, 18.x, 16.x, and 14.x release lines on February 16, 2023. The fixes address permission bypass, OpenSSL error-stack handling, CRLF injection in fetch host headers, ReDoS in fetch Headers methods, privileged ICU data loading, and npm-related CVEs.

### Source excerpt

Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

## Tips and tricks for using Renovate

DevFeed: [Tips and tricks for using Renovate](<https://devfeed.tech/articles/tips-and-tricks-for-using-renovate-38559.md>)

Original publisher: [Read original article](<https://msfjarvis.dev/posts/tips-and-tricks-for-using-renovate/>)

Author: Harsh Shandilya

Published: 2023-01-17T19:32:18Z

Content type: tutorial

Language: en

Sources: [Posts on Harsh Shandilya](<https://devfeed.tech/sources/posts-on-harsh-shandilya.md>)

Topics: [renovate](<https://devfeed.tech/topics/renovate.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Dependabot](<https://devfeed.tech/topics/dependabot.md>), [ci](<https://devfeed.tech/topics/ci.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Hugo](<https://devfeed.tech/topics/hugo.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Netlify](<https://devfeed.tech/topics/netlify.md>)

Tags: [config](<https://devfeed.tech/tags/config.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [dependabot](<https://devfeed.tech/tags/dependabot.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [github](<https://devfeed.tech/tags/github.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [netlify](<https://devfeed.tech/tags/netlify.md>), [regex](<https://devfeed.tech/tags/regex.md>), [renovate](<https://devfeed.tech/tags/renovate.md>), [tips](<https://devfeed.tech/tags/tips.md>)

### AI overview

A practical guide to using Renovate for dependency management. It covers disabling updates for selected packages, grouping related updates, setting semver bounds, detecting dependencies in non-standard declarations with regular expressions, securing GitHub Actions with exact commit SHAs, and automatically merging compatible updates.

### Source excerpt

Renovate is an extremely powerful tool for keeping your dependencies up-to-date, and its flexibility is often left unexplored. I'm hoping to change that

## SSH Hardening to Prevent Brute-Force Attacks

DevFeed: [SSH Hardening to Prevent Brute-Force Attacks](<https://devfeed.tech/articles/ssh-hardening-to-prevent-brute-force-attacks-29870.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/ssh-hardening-to-prevent-brute-force-attacks/>)

Author: info@goteleport.com (Robert Watson)

Published: 2022-01-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [Teleport](<https://devfeed.tech/sources/teleport.md>)

Topics: [ssh](<https://devfeed.tech/topics/ssh.md>), [Security](<https://devfeed.tech/topics/security.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [remote access](<https://devfeed.tech/topics/remote-access.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [attacks](<https://devfeed.tech/tags/attacks.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [email](<https://devfeed.tech/tags/email.md>), [expression](<https://devfeed.tech/tags/expression.md>), [fail2ban](<https://devfeed.tech/tags/fail2ban.md>), [filter](<https://devfeed.tech/tags/filter.md>), [hardening](<https://devfeed.tech/tags/hardening.md>), [ip](<https://devfeed.tech/tags/ip.md>), [limit](<https://devfeed.tech/tags/limit.md>), [protection](<https://devfeed.tech/tags/protection.md>), [reduce](<https://devfeed.tech/tags/reduce.md>), [remote-access](<https://devfeed.tech/tags/remote-access.md>), [security](<https://devfeed.tech/tags/security.md>), [server](<https://devfeed.tech/tags/server.md>), [server-logs](<https://devfeed.tech/tags/server-logs.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [tcp](<https://devfeed.tech/tags/tcp.md>)

### AI overview

This tutorial presents four ways to harden SSH servers against brute-force attacks: limiting authentication attempts, using Fail2ban, and restricting SSH access with TCP wrappers. It also explains how Fail2ban filters server logs and responds to suspicious activity.

### Source excerpt

In this article, we explore and explain four ways to harden SSH from brute-force attacks to help improve security.

## Practical parsing with Flex and Bison

DevFeed: [Practical parsing with Flex and Bison](<https://devfeed.tech/articles/practical-parsing-with-flex-and-bison-21491.md>)

Original publisher: [Read original article](<https://begriffs.com/posts/2021-11-28-practical-parsing.html>)

Published: 2021-11-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Joe Nelson](<https://devfeed.tech/sources/joe-nelson.md>)

Topics: [Parsing](<https://devfeed.tech/topics/parsing.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [C](<https://devfeed.tech/topics/c.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [make](<https://devfeed.tech/topics/make.md>)

Tags: [build-system](<https://devfeed.tech/tags/build-system.md>), [c](<https://devfeed.tech/tags/c.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [lexer](<https://devfeed.tech/tags/lexer.md>), [make](<https://devfeed.tech/tags/make.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [scanner](<https://devfeed.tech/tags/scanner.md>)

### AI overview

A practical guide to parsing with Lex, Yacc, Flex, and Bison. It explains how lexing divides input into meaningful chunks, how parsing groups those chunks according to recursive rules, and how parser generators can be integrated into build systems and used for real data formats.

### Source excerpt

2021-11-28 Although parsing is often described from the perspective of writing a compiler, there are many common smaller tasks where it's useful. Reading file formats, talking over the network, creating shells, and analyzing source code are all easier using a robust parser. By taking time to learn general-purpose parsing tools, you can go beyond fragile homemade solutions, and inflexible third-party libraries. We'll cover Lex and Yacc in this guide because they are mature and portable.

## Why Valid Hostname Checks Are More Complex Than a Simple Regular Expression

DevFeed: [Why Valid Hostname Checks Are More Complex Than a Simple Regular Expression](<https://devfeed.tech/articles/what-s-in-a-hostname-30188.md>)

Original publisher: [Read original article](<https://www.netmeister.org/blog/hostnames.html>)

Published: 2021-10-19T02:50:51Z

Content type: article

Language: en

Sources: [Signs of Triviality](<https://devfeed.tech/sources/signs-of-triviality.md>)

Topics: [Regular expression](<https://devfeed.tech/topics/regular-expression.md>)

Tags: [dns](<https://devfeed.tech/tags/dns.md>), [expression](<https://devfeed.tech/tags/expression.md>)

### AI overview

The article explains that validating hostnames is more complicated than using a simple regular expression because hostnames are DNS labels.

### Source excerpt

The common definition of a 'valid hostname' is often reduced to a simple regular expression, but as the saying goes: 'Now you have two problems.' Because hostnames are DNS labels and those... well, it's the DNS. All bets are off.

## Row pattern recognition with MATCH\_RECOGNIZE

DevFeed: [Row pattern recognition with MATCH\_RECOGNIZE](<https://devfeed.tech/articles/row-pattern-recognition-with-match-recognize-8664.md>)

Original publisher: [Read original article](<https://trino.io/blog/2021/05/19/row_pattern_matching.html>)

Author: Kasia Findeisen (kasiafi)

Published: 2021-05-19T00:00:00Z

Content type: article

Language: en

Sources: [Trino Blog](<https://devfeed.tech/sources/trino-blog.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [blog-post](<https://devfeed.tech/tags/blog-post.md>), [pattern-matching](<https://devfeed.tech/tags/pattern-matching.md>), [sql](<https://devfeed.tech/tags/sql.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [trends](<https://devfeed.tech/tags/trends.md>)

### AI overview

This blog post introduces SQL row pattern matching with MATCH_RECOGNIZE, supported by Trino since version 356. It explains how regular-expression-like patterns can match sequences of table rows and produce detailed or summary information for later query processing.

### Source excerpt

The MATCH_RECOGNIZE syntax was introduced in the latest SQL specification of 2016. It is a super powerful tool for analyzing trends in your data. We are proud to announce that Trino supports this great feature since version 356. With MATCH_RECOGNIZE, you can define a pattern using the well-known regular expression syntax, and match it to a set of rows. Upon finding a matching row sequence, you can retrieve all kinds of detailed or summary information about the match, and pass it on to be processed by the subsequent parts of your query. This is a new level of what a pure SQL statement can do. This blog post gives you a taste of row pattern matching capabilities, and a quick overview of the MATCH_RECOGNIZE syntax.

## Simple Search and Replace in Ruby

DevFeed: [Simple Search and Replace in Ruby](<https://devfeed.tech/articles/simple-search-and-replace-in-ruby-28313.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/ruby/2020/05/14/simple-search-and-replace-in-ruby.html>)

Author: Fuzzygroup

Published: 2020-05-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [Ruby](<https://devfeed.tech/topics/ruby.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [expression](<https://devfeed.tech/tags/expression.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [search](<https://devfeed.tech/tags/search.md>), [stack-overflow](<https://devfeed.tech/tags/stack-overflow.md>)

### AI overview

A Ruby search-and-replace technique for converting regular-expression matches to strings: use sub or gsub with a literal string instead of a pattern when appropriate.

### Source excerpt

The other day I needed to take some regular expressions and convert them to strings. And while executing a .to_s on the regular expression itself worked correctly it brought through the regular expression characters so there were things like: covid[ -]19 where what I was looking for was just the "covid19" bit (I was generating hashtags from the matched regular expressions for the new CovidNearMe News Aggregator). I started digging into the Ruby string library and didn't find what I was looking for - a str_replace like command. I also experimented a bit with tr but that proved to be misleading at best. Not surprisingly, Stack Overflow came to the rescue and the answer was blindingly simple: Use sub Use gsub but don't specify a pattern; just specify a string. If you don't have: .gsub(/foo/,'bar') but instead .gsub('foo','bar') With this approach, you can then either use sub or gsub depending on how you need the search and replace executed. This is a truly ruby-esque approach and one I should have anticipated.

## A Regular Expression for Validating An Internet Domain

DevFeed: [A Regular Expression for Validating An Internet Domain](<https://devfeed.tech/articles/a-regular-expression-for-validating-an-internet-domain-28296.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/regex/2020/02/03/a-regex-for-an-internet-domain.html>)

Author: Fuzzygroup

Published: 2020-02-03T00:00:00Z

Content type: tutorial

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Internet](<https://devfeed.tech/topics/internet.md>)

Tags: [blog-post](<https://devfeed.tech/tags/blog-post.md>), [expression](<https://devfeed.tech/tags/expression.md>), [internet](<https://devfeed.tech/tags/internet.md>), [regex](<https://devfeed.tech/tags/regex.md>)

### AI overview

The article corrects an overly broad regular expression for validating Internet domain names. It explains that non-whitespace characters incorrectly allow underscores and presents a pattern using letters, digits, and hyphens in each domain label.

### Source excerpt

Despite the power and truth of Jamie Zawinski's law: Regular Expressions: Now You Have Two Problems Jeff Atwood's Perspective Like Jeff, I too really, really love regular expressions or regexes. I use this one a lot and I finally learned to use \S (Any non-whitespace character) so here's a regex ^\S+\.\S+$ that I wrote yesterday to "validate" the permitted characters in an Internet domain. I was all proud of this and wrote this blog post only to realize that pride really does goeth before a fall - this will NOT correctly validate an Internet domain. As I write this post, I realize that the number of allowed characters in an Internet domain are actually NOT any non-whitespace characters and here's the proof that I actually got that wrong yesterday when I put something online using it: Note: The fact that Rubular allows through an _ which is NOT a valid character in domains is problematic. So the right way to do this, DAMN IT, is something like this: ^[A-Za-z0-9\-]+\.[A-Za-z0-9\-]+$ And this actually works: The [A-Za-z0-9-]+ is a "character class" which says "Any uppercase or lowercase letter plus 0-9 plus a -" are allowed (any order, any quantity)". Regular Expressions - Now you have two problems.

## PostgreSQL Data Types

DevFeed: [PostgreSQL Data Types](<https://devfeed.tech/articles/postgresql-data-types-34598.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2018/05/postgresql-data-types/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2018-05-24T12:47:05Z

Content type: article

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [JOIN](<https://devfeed.tech/topics/join.md>), [Query (disambiguation)](<https://devfeed.tech/topics/query.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>)

Tags: [data-type](<https://devfeed.tech/tags/data-type.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [join](<https://devfeed.tech/tags/join.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [query](<https://devfeed.tech/tags/query.md>), [regexp](<https://devfeed.tech/tags/regexp.md>), [reporting](<https://devfeed.tech/tags/reporting.md>)

### AI overview

A recap of a series on PostgreSQL data types, covering how types provide input validation, expected behaviors, and processing functions. It reviews examples involving booleans, text encoding and processing, date and time values, and network address types.

### Source excerpt

Today it's time to conclude our series of PostgreSQL Data Types articles with a recap. The series cover lots of core PostgreSQL data types and shows how to benefit from the PostgreSQL concept of a data type: more than input validation, a PostgreSQL data type also implements expected behaviors and processing functions. This allows an application developer to rely on PostgreSQL for more complex queries, having the processing happen where the data is, for instance when implementing advanced JOIN operations, then retrieving only the data set that is interesting for the application.

## PostgreSQL Data Types: Text Processing

DevFeed: [PostgreSQL Data Types: Text Processing](<https://devfeed.tech/articles/postgresql-data-types-text-processing-34594.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2018/04/postgresql-data-types-text-processing/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2018-04-11T21:15:42Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [pattern matching](<https://devfeed.tech/topics/pattern-matching.md>), [CSV](<https://devfeed.tech/topics/csv.md>)

Tags: [csv](<https://devfeed.tech/tags/csv.md>), [dataset](<https://devfeed.tech/tags/dataset.md>), [functions](<https://devfeed.tech/tags/functions.md>), [pattern-matching](<https://devfeed.tech/tags/pattern-matching.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [processing](<https://devfeed.tech/tags/processing.md>), [regexp](<https://devfeed.tech/tags/regexp.md>), [regular](<https://devfeed.tech/tags/regular.md>), [text](<https://devfeed.tech/tags/text.md>)

### AI overview

This tutorial introduces PostgreSQL text-processing functions and operators, including string functions, aggregates, regular expressions, and regexp_split_to_table(). It also discusses text and varchar data types and demonstrates processing comma-separated and hierarchical values in a CSV dataset.

### Source excerpt

Continuing our series of PostgreSQL Data Types today we're going to introduce some of the PostgreSQL text processing functions. There's a very rich set of PostgreSQL functions to process text -- you can find them all in the string functions and operators documentation chapter -- with functions such as overlay(), substring(), position() or trim(). Or aggregates such as string_agg(). There are also regular expression functions, including the very powerful regexp_split_to_table(). In this article we see practical example putting them in practice.

## Regular Expressions and Grouping Sets

DevFeed: [Regular Expressions and Grouping Sets](<https://devfeed.tech/articles/regular-expressions-and-grouping-sets-34563.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2017/08/regular-expressions-and-grouping-sets/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2017-08-14T14:37:53Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [data-processing](<https://devfeed.tech/topics/data-processing.md>), [Open Data](<https://devfeed.tech/topics/open-data.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>), [CSV](<https://devfeed.tech/topics/csv.md>), [elt](<https://devfeed.tech/topics/elt.md>), [etl](<https://devfeed.tech/topics/etl.md>)

Tags: [array](<https://devfeed.tech/tags/array.md>), [csv](<https://devfeed.tech/tags/csv.md>), [data-processing](<https://devfeed.tech/tags/data-processing.md>), [elt](<https://devfeed.tech/tags/elt.md>), [etl](<https://devfeed.tech/tags/etl.md>), [functions](<https://devfeed.tech/tags/functions.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [regexp](<https://devfeed.tech/tags/regexp.md>), [regular-expressions](<https://devfeed.tech/tags/regular-expressions.md>), [sql](<https://devfeed.tech/tags/sql.md>), [table](<https://devfeed.tech/tags/table.md>)

### AI overview

A PostgreSQL tutorial showing how to split hierarchical, comma-separated values from a messy column with regular-expression functions, normalize the results, and analyze category distributions with grouping sets, CUBE, and ROLLUP. It also contrasts ETL with ELT.

### Source excerpt

There's a very rich set of PostgreSQL functions to process text, you can find them all at the String Functions and Operators documentation chapter, with functions such as overlay, substring, position or trim. Or aggregates such as string_agg. And then regular expression functions, including the very powerful regexp_split_to_table.

[Next page](<https://devfeed.tech/topics/regular-expression.md?cursor=WyIyMDE3LTA4LTE0VDE0OjM3OjUzKzAwOjAwIiwgIjJhZDdiYzJiLWMwMWMtNGUwMS05NWU4LTM4OThjNjI5NjdjYSJd>)