go/src/regexp
Russ Cox 930cf59ba8 regexp/syntax: recognize category aliases like \p{Letter}
The Unicode specification defines aliases for some of the general
category names. For example the category "L" has alias "Letter".

The regexp package supports \p{L} but not \p{Letter}, because there
was nothing in the Unicode tables that lets regexp know about Letter.
Now that package unicode provides CategoryAliases (see #70780),
we can use it to provide \p{Letter} as well.

This is the only feature missing from making package regexp suitable
for use in a JSON-API Schema implementation. (The official test suite
includes usage of aliases like \p{Letter} instead of \p{L}.)

For better conformity with Unicode TR18, also accept case-insensitive
matches for names and ignore underscores, hyphens, and spaces;
and add Any, ASCII, and Assigned.

Fixes #70781.

Change-Id: I50ff024d99255338fa8d92663881acb47f1e92a5
Reviewed-on: https://go-review.googlesource.com/c/go/+/641377
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
2025-04-18 14:13:38 -07:00
..
syntax regexp/syntax: recognize category aliases like \p{Letter} 2025-04-18 14:13:38 -07:00
testdata
all_test.go math/big,regexp: implement the encoding.TextAppender interface 2024-08-15 23:43:00 +00:00
backtrack.go regexp: use built-in clear to clear b.visited in *bitState.reset 2023-09-14 17:25:39 +00:00
example_test.go
exec.go
exec2_test.go
exec_test.go regexp: use slices to simplify the code 2024-03-25 19:36:03 +00:00
find_test.go
onepass.go regexp: allow patterns with no alternates to be one-pass 2024-07-24 01:01:48 +00:00
onepass_test.go regexp: allow patterns with no alternates to be one-pass 2024-07-24 01:01:48 +00:00
regexp.go math/big,regexp: implement the encoding.TextAppender interface 2024-08-15 23:43:00 +00:00