# regex

Published articles for regex.

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

## "Regex for Rows": Simplifying Pattern Detection in SQL with MATCH\_RECOGNIZE

DevFeed: ["Regex for Rows": Simplifying Pattern Detection in SQL with MATCH\_RECOGNIZE](<https://devfeed.tech/articles/regex-for-rows-simplifying-pattern-detection-in-sql-with-match-recognize-31401.md>)

Original publisher: [Read original article](<https://www.databricks.com/blog/regex-rows-simplifying-pattern-detection-sql-matchrecognize>)

Author: Kent Marten; Sergei Fedorov

Published: 2026-09-16T17:14:05Z

Content type: tutorial

Language: en

Sources: [Databricks](<https://devfeed.tech/sources/databricks.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [databricks](<https://devfeed.tech/topics/databricks.md>), [Cybersecurity](<https://devfeed.tech/topics/cybersecurity.md>), [Security & Privacy](<https://devfeed.tech/topics/security-privacy.md>)

Tags: [count](<https://devfeed.tech/tags/count.md>), [cybersecurity](<https://devfeed.tech/tags/cybersecurity.md>), [databricks](<https://devfeed.tech/tags/databricks.md>), [failed](<https://devfeed.tech/tags/failed.md>), [false-positives](<https://devfeed.tech/tags/false-positives.md>), [functions](<https://devfeed.tech/tags/functions.md>), [login](<https://devfeed.tech/tags/login.md>), [partition](<https://devfeed.tech/tags/partition.md>), [product](<https://devfeed.tech/tags/product.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [regex](<https://devfeed.tech/tags/regex.md>), [sql](<https://devfeed.tech/tags/sql.md>), [window-functions](<https://devfeed.tech/tags/window-functions.md>)

### AI overview

This tutorial explains how Databricks supports SQL MATCH_RECOGNIZE for detecting ordered event patterns. It shows how the clause can simplify sequence detection, including identifying repeated login failures followed by a successful login, compared with complex SQL queries and window functions.

### Source excerpt

Imagine you work in cybersecurity and you have a table that tracks login attempts...

## A Failed XML-Based DSL Design Using a Large Regular Expression

DevFeed: [A Failed XML-Based DSL Design Using a Large Regular Expression](<https://devfeed.tech/articles/best-of-classic-wtf-a-dumbain-specific-language-28506.md>)

Original publisher: [Read original article](<https://thedailywtf.com/articles/classic-wtf-a-dumbain-specific-language>)

Author: Remy Porter

Published: 2026-09-07T06:30:00Z

Content type: opinion

Language: en

Sources: [The Daily WTF](<https://devfeed.tech/sources/the-daily-wtf.md>)

Topics: [XML](<https://devfeed.tech/topics/xml.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>), [bug](<https://devfeed.tech/topics/bug.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [best-of](<https://devfeed.tech/tags/best-of.md>), [bug](<https://devfeed.tech/tags/bug.md>), [code](<https://devfeed.tech/tags/code.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [domain-specific-languages](<https://devfeed.tech/tags/domain-specific-languages.md>), [dsls](<https://devfeed.tech/tags/dsls.md>), [regex](<https://devfeed.tech/tags/regex.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

The article revisits a failed attempt to build a domain-specific language with XML schemas and a 1,310-character regular expression. It describes a bug in the expression and criticizes the resulting design as an unsuccessful effort to save labor.

### Source excerpt

It's a holiday here in the US, a celebration of labor, so we're reaching back through the archives for a story about an attempt to be labor saving that was not successful. Original. --Remy I've had to write a few domain-specific-languages in the past. As per Remy's Law of Requirements Gathering, it's been mostly because the users needed an Excel-like formula language. The danger of DSLs, of course, is that they're often YAGNI in the extreme, or at least a sign that you don't really understand your problem. XML, coupled with schemas, is a tool for building data-focused DSLs. If you have some complex structure, you can convert each of its features into an XML attribute. For example, if you had a grammar that looked something like this: The Source specification obeys the following syntax source = ( Feature1+Feature2+... ":" ) ? steps Feature1 = "local" | "global" Feature2 ="real" | "virtual" | "ComponentType.all" Feature3 ="self" | "ancestors" | "descendants" | "Hierarchy.all" Feature4 = "first" | "last" | "DayAllocation.all" If features are specified, the order of features as given above has strictly to be followed. steps = oneOrMoreNameSteps | zeroOrMoreNameSteps | componentSteps oneOrMoreNameSteps = nameStep ( "." nameStep ) * zeroOrMoreNameSteps = ( nameStep "." ) * nameStep = "#" name name is a string of characters from "A"-"Z", "a"-"z", "0"-"9", "-" and "_". No umlauts allowed, one character is minimum. componentSteps is a list of valid values, see below. Valid 'componentSteps' are: - GlobalValue - Product - Product.Brand - Product.Accommodation - Product.Accommodation.SellingAccom - Product.Accommodation.SellingAccom.Board - Product.Accommodation.SellingAccom.Unit - Product.Accommodation.SellingAccom.Unit.SellingUnit - Product.OnewayFlight - Product.OnewayFlight.BookingClass - Product.ReturnFlight - Product.ReturnFlight.BookingClass - Product.ReturnFlight.Inbound - Product.ReturnFlight.Outbound - Product.Addon - Product.Addon.Service - Product.Addon.ServiceFeatu

## Why regex isn't email validation

DevFeed: [Why regex isn't email validation](<https://devfeed.tech/articles/why-regex-isn-t-email-validation-16072.md>)

Original publisher: [Read original article](<https://workos.com/blog/why-regex-isnt-email-validation>)

Author: WorkOS

Published: 2026-08-24T00:00:00Z

Content type: article

Language: en

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

Topics: [Parsing](<https://devfeed.tech/topics/parsing.md>), [Forms](<https://devfeed.tech/topics/forms.md>), [HTML5 and CSS3 tricks](<https://devfeed.tech/topics/html5-and-css3-tricks.md>), [Library](<https://devfeed.tech/topics/library.md>), [Internet](<https://devfeed.tech/topics/internet.md>)

Tags: [advice](<https://devfeed.tech/tags/advice.md>), [deliverability](<https://devfeed.tech/tags/deliverability.md>), [domain](<https://devfeed.tech/tags/domain.md>), [email](<https://devfeed.tech/tags/email.md>), [forms](<https://devfeed.tech/tags/forms.md>), [framework](<https://devfeed.tech/tags/framework.md>), [html5](<https://devfeed.tech/tags/html5.md>), [internet](<https://devfeed.tech/tags/internet.md>), [library](<https://devfeed.tech/tags/library.md>), [regex](<https://devfeed.tech/tags/regex.md>), [validation](<https://devfeed.tech/tags/validation.md>)

### AI overview

The article explains that email syntax validation with regexes, HTML5 checks, or framework libraries does not establish deliverability or confirm that a mailbox exists. It recommends a loose syntax check and stopping there, while recognizing that stronger checks address separate, less reliable questions.

### Source excerpt

Checking that an address looks right and checking that it can receive mail are different problems. Most signup forms only solve the first one.

## CockroachDB Plans Native X.509 SAN Support for SPIFFE and SPIRE Integration

DevFeed: [CockroachDB Plans Native X.509 SAN Support for SPIFFE and SPIRE Integration](<https://devfeed.tech/articles/modernizing-database-authentication-cockroachdb-embraces-zero-trust-with-spiffe-and-spire-support-23827.md>)

Original publisher: [Read original article](<https://cockroachlabs.com/blog/zero-trust-database-authentication-spiffe-spire>)

Author: Sanchit Khanna,Biplav Saraf

Published: 2026-03-13T00:00:00Z

Content type: article

Language: en

Sources: [Cockroach Labs](<https://devfeed.tech/sources/cockroach-labs.md>)

Topics: [CockroachDB](<https://devfeed.tech/topics/cockroachdb.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [SPIFFE](<https://devfeed.tech/topics/spiffe.md>), [SPIRE](<https://devfeed.tech/topics/spire.md>), [certificates](<https://devfeed.tech/topics/certificates.md>), [Zero Trust](<https://devfeed.tech/topics/zero-trust.md>), [Security](<https://devfeed.tech/topics/security.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>)

Tags: [architectures](<https://devfeed.tech/tags/architectures.md>), [auditability](<https://devfeed.tech/tags/auditability.md>), [aws-iam](<https://devfeed.tech/tags/aws-iam.md>), [certificates](<https://devfeed.tech/tags/certificates.md>), [cockroachdb](<https://devfeed.tech/tags/cockroachdb.md>), [compliance](<https://devfeed.tech/tags/compliance.md>), [cryptographic](<https://devfeed.tech/tags/cryptographic.md>), [database](<https://devfeed.tech/tags/database.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [processor](<https://devfeed.tech/tags/processor.md>), [regex](<https://devfeed.tech/tags/regex.md>), [security](<https://devfeed.tech/tags/security.md>), [soc](<https://devfeed.tech/tags/soc.md>), [soc-2](<https://devfeed.tech/tags/soc-2.md>), [spiffe](<https://devfeed.tech/tags/spiffe.md>), [spire](<https://devfeed.tech/tags/spire.md>), [standards](<https://devfeed.tech/tags/standards.md>), [teams](<https://devfeed.tech/tags/teams.md>), [verification](<https://devfeed.tech/tags/verification.md>), [zero-trust](<https://devfeed.tech/tags/zero-trust.md>)

### AI overview

The article previews planned CockroachDB authentication support for Subject Alternative Name fields in X.509 certificates. It explains how SAN support is intended to enable integration with SPIFFE and SPIRE and support regex-based identity mapping for cloud-native workloads.

### Source excerpt

In the evolution of cloud-native security, identity has become the new perimeter.

## 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.

## Response: CLI Is an API

DevFeed: [Response: CLI Is an API](<https://devfeed.tech/articles/response-cli-is-an-api-11189.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/05/response-cli-api/>)

Published: 2025-05-14T06:32:00Z

Content type: opinion

Language: en

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

Topics: [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>), [Cisco](<https://devfeed.tech/topics/cisco.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [automation](<https://devfeed.tech/tags/automation.md>), [cisco](<https://devfeed.tech/tags/cisco.md>), [cli](<https://devfeed.tech/tags/cli.md>), [regex](<https://devfeed.tech/tags/regex.md>)

### AI overview

This commentary revisits whether a command-line interface can serve as an API. It presents cautious parsing practices for CLI output but concludes that structured data remains preferable because regex-based parsing does not understand semantic structure and is difficult to maintain.

### Source excerpt

Andrew Yourtchenko and Dr. Tony Przygienda left wonderful comments to my Screen Scraping in 2025 blog post, but unfortunately they prefer commenting on a closed platform with ephemeral content; the only way to make their thoughts available to a wider audience is by reposting them. Andrew first: I keep saying CLI is an API. However, it is much simpler and an easier way to adapt to the changes, if these three conditions are met: Read more ...

## How Teleport Simplifies Just-in-Time Access

DevFeed: [How Teleport Simplifies Just-in-Time Access](<https://devfeed.tech/articles/how-teleport-simplifies-just-in-time-access-29680.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/how-teleport-simplifies-just-in-time-access/>)

Author: jack@goteleport.com (Jack Pitts)

Published: 2025-04-23T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [JIT](<https://devfeed.tech/topics/jit.md>), [Access Control](<https://devfeed.tech/topics/access-control.md>), [resiliency](<https://devfeed.tech/topics/resiliency.md>), [API](<https://devfeed.tech/topics/api.md>), [Single sign-on (SSO)](<https://devfeed.tech/topics/sso.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [access-control](<https://devfeed.tech/tags/access-control.md>), [api](<https://devfeed.tech/tags/api.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [cli](<https://devfeed.tech/tags/cli.md>), [condition](<https://devfeed.tech/tags/condition.md>), [jit](<https://devfeed.tech/tags/jit.md>), [least-privilege](<https://devfeed.tech/tags/least-privilege.md>), [policy](<https://devfeed.tech/tags/policy.md>), [regex](<https://devfeed.tech/tags/regex.md>), [resiliency](<https://devfeed.tech/tags/resiliency.md>), [sso](<https://devfeed.tech/tags/sso.md>)

### AI overview

This article explains how Teleport integrates just-in-time access with identity, policy, and workflows. It describes role-based access controls, request restrictions, automated approvals, and requirements such as reasons, approval thresholds, regex validation, session moderation, and dual authorization.

### Source excerpt

Just-in-time access isn't always easy. Explore how Teleport tackles JIT challenges by simplifying least privilege, streamlining requests, and strengthening resiliency.

## Running Specific Android UI Tests using TestParameterInjector via a Regex

DevFeed: [Running Specific Android UI Tests using TestParameterInjector via a Regex](<https://devfeed.tech/articles/running-specific-android-ui-tests-using-testparameterinjector-via-a-regex-25130.md>)

Original publisher: [Read original article](<https://handstandsam.com/2025/01/15/running-specific-android-ui-tests-using-testparameterinjector-via-a-regex/>)

Author: Sam Edwards

Published: 2025-01-15T14:49:13Z

Content type: tutorial

Language: en

Sources: [Handstand Sam](<https://devfeed.tech/sources/handstand-sam.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Instrumentation](<https://devfeed.tech/topics/instrumentation.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [test](<https://devfeed.tech/topics/test.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [examples](<https://devfeed.tech/tags/examples.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [instrumentation](<https://devfeed.tech/tags/instrumentation.md>), [on-device](<https://devfeed.tech/tags/on-device.md>), [regex](<https://devfeed.tech/tags/regex.md>), [tests](<https://devfeed.tech/tags/tests.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

This tutorial explains how TestParameterInjector generates parameterized Android instrumentation test names at runtime and why that makes selecting individual tests difficult. It discusses using the AndroidJUnitRunner tests_regex argument to target specific generated test names, while noting that class-level selection may run multiple parameterized cases.

### Source excerpt

There is documentation on the Android Developer website sharing tips to run Android UI tests via the command-line which I've found super useful. It provides examples on how to run specific tests (instead of running them all) including running by package, class or method. This documentation is fantastic, but it doesn't include the tests_regex argument [...]

## Generating a SQLite word dictionary (with definitions) from WordNet using Python

DevFeed: [Generating a SQLite word dictionary (with definitions) from WordNet using Python](<https://devfeed.tech/articles/generating-a-sqlite-word-dictionary-with-definitions-from-wordnet-using-python-38575.md>)

Original publisher: [Read original article](<https://blog.jakelee.co.uk/sqlite-word-dictionary-from-wordnet/>)

Author: Jake Lee

Published: 2024-12-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jake Lee's Programming Blog](<https://devfeed.tech/sources/jake-lee-s-programming-blog.md>)

Topics: [SQLite](<https://devfeed.tech/topics/sqlite.md>), [Python](<https://devfeed.tech/topics/python.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [database](<https://devfeed.tech/tags/database.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [python](<https://devfeed.tech/tags/python.md>), [regex](<https://devfeed.tech/tags/regex.md>), [script](<https://devfeed.tech/tags/script.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>)

### AI overview

This tutorial explains how to generate a SQLite word dictionary from Princeton's WordNet using Python. It describes filtering words and definitions, removing unwanted entries, and producing a compact database for use in an app.

### Source excerpt

I recently needed a SQLite dictionary with word, type, and definition(s). Turns out, it was easy enough to make my own!

## 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).

## Lint Revisit: Providing Alternatives 🧙♀

DevFeed: [Lint Revisit: Providing Alternatives 🧙♀](<https://devfeed.tech/articles/lint-revisit-providing-alternatives-26175.md>)

Original publisher: [Read original article](<https://zarah.dev/2024/07/24/lintfix-alternatives.html>)

Author: Zarah Dominguez

Published: 2024-07-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Zarah Dominguez](<https://devfeed.tech/sources/zarah-dominguez.md>)

Topics: [enum](<https://devfeed.tech/topics/enum.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [enum](<https://devfeed.tech/tags/enum.md>), [github](<https://devfeed.tech/tags/github.md>), [jira](<https://devfeed.tech/tags/jira.md>), [lint](<https://devfeed.tech/tags/lint.md>), [regex](<https://devfeed.tech/tags/regex.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [test](<https://devfeed.tech/tags/test.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This tutorial shows how to extend a TODO Detector lint rule with project-specific ticket prefixes, regular-expression validation, autofix alternatives, and tests for those alternatives. It also discusses difficulty placing the caret precisely in the generated fix.

### Source excerpt

In my previous post, we updated our TODO Detector to be more flexible. It is also easily extensible so that if we want to include more parameters or perhaps add more checks, we can follow the existing pattern and modify it.

## Keycloak 24.0.0 released

DevFeed: [Keycloak 24.0.0 released](<https://devfeed.tech/articles/keycloak-24-0-0-released-31635.md>)

Original publisher: [Read original article](<https://www.keycloak.org/2024/03/keycloak-2400-released>)

Author: Keycloak Team

Published: 2024-03-04T00:00:00Z

Content type: release

Language: en

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

Topics: [Keycloak](<https://devfeed.tech/topics/keycloak.md>), [Forms](<https://devfeed.tech/topics/forms.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>)

Tags: [forms](<https://devfeed.tech/tags/forms.md>), [html](<https://devfeed.tech/tags/html.md>), [idm](<https://devfeed.tech/tags/idm.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [kerberos](<https://devfeed.tech/tags/kerberos.md>), [keycloak](<https://devfeed.tech/tags/keycloak.md>), [keycloak-release](<https://devfeed.tech/tags/keycloak-release.md>), [ldap](<https://devfeed.tech/tags/ldap.md>), [openid-connect](<https://devfeed.tech/tags/openid-connect.md>), [regex](<https://devfeed.tech/tags/regex.md>), [release](<https://devfeed.tech/tags/release.md>), [saml](<https://devfeed.tech/tags/saml.md>), [sso](<https://devfeed.tech/tags/sso.md>)

### AI overview

Keycloak 24.0.0 was released with the user profile preview feature promoted to full support and enabled by default. The release adds configurable user attributes, dynamic forms, validation, annotations, progressive profiling, and migration support.

### Source excerpt

To download the release go to Keycloak downloads. Highlights Supported user profile and progressive profiling The user profile preview feature is promoted to be fully supported and user profile is enabled by default. In the past months, the Keycloak team spent a huge amount of effort in polishing the user profile feature to make it fully supported. In this release, we continued the effort. Lots of improvements, fixes and polishing were done based on the thorough testing and feedback from our awesome community. The following are a few highlights of this feature; Fine-grained control over the attributes that users and administrators can manage so that you can prevent unexpected attributes and values from being set. Ability to specify what user attributes are managed and should be displayed on the forms to regular users or administrators. Dynamic forms - Previously, the forms where users created or updated their profiles, contain four basic attributes like username, email, first name and last name. The addition of any attributes (or removing some default attributes) required you to create a custom theme. Now custom themes may not be needed because users see exactly the requested attributes based on the requirement of the particular deployment. Validations - Ability to specify validators for the user attributes including built-in validators that you can use to specify a maximum or minimum length, a specific regex, or limiting a particular attribute to be a URL or number. Annotations - Ability to specify that particular attribute should be rendered for instance as a text area, an HTML select with specified options, or calendar or many other options. You can also bind JavaScript code to a specific field to change how an attribute is rendered and customize its behavior. Progressive profiling - Ability to specify that some fields are required or available on the forms just for particular values of scope parameter. This effectively allow progressive profiling. You no longer

## How the Guardian improved Typerighter, its style-guide checking tool

DevFeed: [How the Guardian improved Typerighter, its style-guide checking tool](<https://devfeed.tech/articles/making-typerighter-work-harder-19958.md>)

Original publisher: [Read original article](<https://www.theguardian.com/info/2023/dec/11/making-typerighter-work-harder-engineering-blog>)

Author: Rhys Mills

Published: 2023-12-11T15:12:52Z

Content type: article

Language: en

Sources: [Guardian](<https://devfeed.tech/sources/guardian.md>)

Topics: [Tool](<https://devfeed.tech/topics/tool.md>), [Content Management System](<https://devfeed.tech/topics/cms.md>), [Composer](<https://devfeed.tech/topics/composer.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [Web app](<https://devfeed.tech/topics/webapp.md>), [Library](<https://devfeed.tech/topics/library.md>), [XML](<https://devfeed.tech/topics/xml.md>)

Tags: [articles](<https://devfeed.tech/tags/articles.md>), [content](<https://devfeed.tech/tags/content.md>), [library](<https://devfeed.tech/tags/library.md>), [quality](<https://devfeed.tech/tags/quality.md>), [quality-control](<https://devfeed.tech/tags/quality-control.md>), [regex](<https://devfeed.tech/tags/regex.md>), [scala](<https://devfeed.tech/tags/scala.md>), [tool](<https://devfeed.tech/tags/tool.md>), [web-app](<https://devfeed.tech/tags/web-app.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

The Guardian describes improvements to Typerighter, a style-guide checking tool integrated with its Composer content management system. The system uses curated regular expressions and XML-based LanguageTool rules to identify potential spelling and grammar problems, and the article explains why expanding its use was important for live blogs.

### Source excerpt

How we improved Typerighter, the Guardian's style guide checker, to provide more value for the Guardian and its readers Minimising typos is important to a newspaper. Publishing messy prose might undermine trust in our overall quality control - why trust our political reporting if we can't spell Thérèse Coffey's name? We want to provide accurate information, and typos can mutate meaning - a single letter can transform a fiend to a friend and a bowl to a bowel. Worse, a missing word can turn a holy text into a wicked one. The Guardian is in the business of words, and we're keen to avoid "idiosyncratic" spelling decisions. That's why we built Typerighter, a tool that offers recommendations from our style guide into our content management system - Composer - and highlights errors well before the articles get in front of our readers. Continue reading...

## Using a script to select an Android device for ADB deeplink commands

DevFeed: [Using a script to select an Android device for ADB deeplink commands](<https://devfeed.tech/articles/making-adb-a-little-bit-dynamic-26170.md>)

Original publisher: [Read original article](<https://zarah.dev/2023/08/30/adb-deeplinks.html>)

Author: Zarah Dominguez

Published: 2023-08-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [Zarah Dominguez](<https://devfeed.tech/sources/zarah-dominguez.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Script](<https://devfeed.tech/topics/script.md>), [Emulator](<https://devfeed.tech/topics/emulator.md>)

Tags: [adb](<https://devfeed.tech/tags/adb.md>), [android](<https://devfeed.tech/tags/android.md>), [debug](<https://devfeed.tech/tags/debug.md>), [deeplinks](<https://devfeed.tech/tags/deeplinks.md>), [emulator](<https://devfeed.tech/tags/emulator.md>), [regex](<https://devfeed.tech/tags/regex.md>), [script](<https://devfeed.tech/tags/script.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

This tutorial explains a script that makes Android Debug Bridge deeplink testing easier when multiple devices or emulators are attached. It lists available devices, prompts for a target when necessary, and sends the command to the selected device.

### Source excerpt

Android has a lot of tools for developers and one that has been around for as long as I can remember is Android Debug Bridge (adb). It allows you to issue commands to an attached device, such as installing an app or starting an Activity.

## A Practical Core Subset of Regular Expressions

DevFeed: [A Practical Core Subset of Regular Expressions](<https://devfeed.tech/articles/regex-isn-t-hard-33418.md>)

Original publisher: [Read original article](<https://timkellogg.me/blog/2023/07/11/regex>)

Published: 2023-07-11T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tim Kellogg](<https://devfeed.tech/sources/tim-kellogg.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [complexity](<https://devfeed.tech/tags/complexity.md>), [languages](<https://devfeed.tech/tags/languages.md>), [portable](<https://devfeed.tech/tags/portable.md>), [programming-languages](<https://devfeed.tech/tags/programming-languages.md>), [regex](<https://devfeed.tech/tags/regex.md>)

### AI overview

This tutorial presents a core subset of regular expressions that is intended to be easier to understand and remember. It explains why regex can be useful, notes that shortcuts add complexity, and introduces character sets, repetition, groups, and operators.

### Source excerpt

Regex gets a bad reputation for being very complex. That's fair, but I also think that if you focus on a certain core subset of regex, it's not that hard. Most of the complexity comes from various "shortcuts" that are hard to remember. If you ignore those, the language itself is fairly small and portable across programming languages.

## Lazy property delegate

DevFeed: [Lazy property delegate](<https://devfeed.tech/articles/lazy-property-delegate-39210.md>)

Original publisher: [Read original article](<https://kt.academy/article/ak-lazy>)

Published: 2023-03-27T00:15:00Z

Content type: tutorial

Language: en

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

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [performance-optimization](<https://devfeed.tech/topics/performance-optimization.md>), [properties](<https://devfeed.tech/topics/properties.md>)

Tags: [kotlin](<https://devfeed.tech/tags/kotlin.md>), [lazy](<https://devfeed.tech/tags/lazy.md>), [performance](<https://devfeed.tech/tags/performance.md>), [property](<https://devfeed.tech/tags/property.md>), [regex](<https://devfeed.tech/tags/regex.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial explains Kotlin's lazy property delegate, which postpones read-only value initialization until first use. It presents use cases involving expensive object construction, application startup, testing, regular-expression compilation, and computed properties.

### Source excerpt

What is lazy delegate, and what are its real-life use cases.

## KMM: A Use case for common UI behavior

DevFeed: [KMM: A Use case for common UI behavior](<https://devfeed.tech/articles/kmm-a-use-case-for-common-ui-behavior-24716.md>)

Original publisher: [Read original article](<https://dev.to/touchlab/kmm-a-use-case-for-common-ui-behavior-2mi3>)

Author: Jigar Brahmbhatt

Published: 2023-01-30T20:03:37Z

Content type: tutorial

Language: en

Sources: [Touchlab](<https://devfeed.tech/sources/touchlab.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Code](<https://devfeed.tech/topics/code.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Web](<https://devfeed.tech/topics/web.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [community](<https://devfeed.tech/tags/community.md>), [developer](<https://devfeed.tech/tags/developer.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [inclusive](<https://devfeed.tech/tags/inclusive.md>), [kmm](<https://devfeed.tech/tags/kmm.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlinmultiplatform](<https://devfeed.tech/tags/kotlinmultiplatform.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [platforms](<https://devfeed.tech/tags/platforms.md>), [regex](<https://devfeed.tech/tags/regex.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [software](<https://devfeed.tech/tags/software.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ux](<https://devfeed.tech/tags/ux.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

The article describes implementing auto-formatting for a phone number field across Android, iOS, and ReactJS in a Kotlin Multiplatform SDK. After platform-specific implementations exposed repeated cursor-position edge cases, the authors refactored the string and cursor-position logic into common code.

### Source excerpt

This post demonstrates how we used common KMP code for a common UI feature across three platforms. Requirement Recently, we got a new feature requirement for the SDK we're developing using Kotlin Multiplatform (KMP). The SDK has a typical UI form with a variety of fields in it that the user fills out. One of the fields is a phone number field. The requirement was to auto-format the number as the user types it out. The end behavior would be like this, How we did it initially We usually divide KMP work based on UI stories for each platform and a task for any required work in the commonMain layer. For deeper dive into how we divide KMP work, checkout Kevin's post about it Following the same approach, first, we added a couple of utility methods in common code to format and unformat the phone number. commonMain fun formatPhoneNumber(number: String): String { // return formatted number using regex } fun unformatPhoneNumber(number: CharSequence): String { // return unformatted number using regex } Then we worked on individual platform UI implementation. Android We implemented a custom TextWatcher and handled the logic in beforeTextChanged and afterTextChanged methods. iOS On iOS, we used @objc func textFieldDidChange(_ sender: UITextField) to handle formatting while entering the number entering, and func textField() with the shouldChangeCharactersIn option to format the number when deleting. Web On ReactJS, we used onChange of the TextField to implement custom logic for formatting. What worked and what went wrong What worked was that each platform performed the same for the general use case of entering and deleting the number due to having common knowledge and JIRA tickets for them. What differed between each platform was how the individual developer approached edge cases around entering and deleting the input from a specific cursor position. For example, consider the input like this (123) 456-7890. Now user wants to remove the number 6 and manually sets the cursor positio

## 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

## Text search at scale with ClickHouse®

DevFeed: [Text search at scale with ClickHouse®](<https://devfeed.tech/articles/text-search-at-scale-with-clickhouse-18678.md>)

Original publisher: [Read original article](<https://www.tinybird.co/blog/text-search-at-scale-with-clickhouse>)

Author: Xoel López

Published: 2022-07-26T00:00:00Z

Content type: article

Language: en

Sources: [Tinybird](<https://devfeed.tech/sources/tinybird.md>)

Topics: [clickhouse](<https://devfeed.tech/topics/clickhouse.md>)

Tags: [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [regex](<https://devfeed.tech/tags/regex.md>), [scale](<https://devfeed.tech/tags/scale.md>), [search](<https://devfeed.tech/tags/search.md>), [the-data-base](<https://devfeed.tech/tags/the-data-base.md>)

### AI overview

The article discusses text search at scale with ClickHouse, including searching thousands of regex patterns across millions of documents in seconds.

### Source excerpt

Searching for thousands of regex patterns on millions of documents in seconds like it's no big deal.

## Analyzing Teleport RBAC with Z3: Regexes, queries and formal methods

DevFeed: [Analyzing Teleport RBAC with Z3: Regexes, queries and formal methods](<https://devfeed.tech/articles/analyzing-teleport-rbac-with-z3-regexes-queries-and-formal-methods-29983.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/z3-rbac/>)

Author: info@goteleport.com (Andrew Helwer)

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

Content type: tutorial

Language: en

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

Topics: [Formal methods](<https://devfeed.tech/topics/formal-methods.md>), [Access Control](<https://devfeed.tech/topics/access-control.md>), [Python](<https://devfeed.tech/topics/python.md>), [Software](<https://devfeed.tech/topics/software.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [access-control](<https://devfeed.tech/tags/access-control.md>), [formal-methods](<https://devfeed.tech/tags/formal-methods.md>), [library](<https://devfeed.tech/tags/library.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [python](<https://devfeed.tech/tags/python.md>), [regex](<https://devfeed.tech/tags/regex.md>), [regular-expressions](<https://devfeed.tech/tags/regular-expressions.md>), [security](<https://devfeed.tech/tags/security.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

This tutorial explains how to use the Z3 theorem prover to analyze Teleport's role-based access control system. It covers checking whether roles admit the same users to the same nodes and handling constraints involving string equality, regular expressions, interpolation, and basic string functions.

### Source excerpt

Learn how to use Z3 to ask questions about our RBAC system. Are two roles the same?

## 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.

## Updates to Firebase Notifications: Reach your users with greater focus

DevFeed: [Updates to Firebase Notifications: Reach your users with greater focus](<https://devfeed.tech/articles/updates-to-firebase-notifications-reach-your-users-with-greater-focus-16185.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2017/03/updates-to-firebase-notifications-reach>)

Author: Laurence Moroney

Published: 2017-03-01T00:00:00Z

Content type: release

Language: en

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

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [Messaging](<https://devfeed.tech/topics/messaging.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [cloud-messaging](<https://devfeed.tech/tags/cloud-messaging.md>), [console](<https://devfeed.tech/tags/console.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [launch](<https://devfeed.tech/tags/launch.md>), [news](<https://devfeed.tech/tags/news.md>), [notifications](<https://devfeed.tech/tags/notifications.md>), [properties](<https://devfeed.tech/tags/properties.md>), [regex](<https://devfeed.tech/tags/regex.md>), [release](<https://devfeed.tech/tags/release.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

Firebase Notifications added more granular audience targeting, including multiple user audiences, user properties, comparison operators, and Regex matching with RE2 syntax.

### Source excerpt

News, tutorials, and updates from the Firebase team.

[Next page](<https://devfeed.tech/tags/regex.md?cursor=WyIyMDE3LTAzLTAxVDAwOjAwOjAwKzAwOjAwIiwgIjgxNzAyZmJjLTRmYTgtNDExOC05ZTZhLTQyMzhmNDM4OWU0NSJd>)