On Tue, Jan 7, 2020 at 10:39 AM Tom Payne <twpa...@gmail.com> wrote: > > Thank you :) Is this worth adding to the regexp/syntax documentation? I'd > happily contribute a patch.
I think so, if it can be described precisely and tersely. Thanks. Ian > On Tuesday, January 7, 2020 at 7:36:02 PM UTC+1, Ian Lance Taylor wrote: >> >> On Tue, Jan 7, 2020 at 10:22 AM Tom Payne <twp...@gmail.com> wrote: >> > >> > tl;dr How should I use named Unicode character classes in regexps? >> > >> > I'm trying to write a regular expression that matches Go identifiers, >> > which start with a Unicode letter or underscore followed by zero or more >> > Unicode letters, decimal digits, and/or underscores. >> > >> > Based on the regexp syntax, and the variables in the unicode package which >> > mention the classes "Letter" and "Number, decimal digit", I was expecting >> > to write something like: >> > >> > identiferRegexp := >> > regexp.MustCompile(`\A[[\p{Letter}]_][[\p{Letter}][\p{Number, decimal >> > digit}]_]*\z`) >> > >> > However, this pattern does not compile, giving the error: >> > >> > regexp: Compile(`\A[[\p{Letter}]_][[\p{Letter}][\p{Number, decimal >> > digit}]_]*\z`): error parsing regexp: invalid character class range: >> > `\p{Letter}` >> > >> > Using the short name for character classes (L for Letter, Nd for Number, >> > decimal digit) does work however: >> > >> > identiferRegexp := regexp.MustCompile(`\A[\pL_][\pL\p{Nd}_]*\z`) >> > >> > You can play with these regexps on play.golang.org. >> > >> > Is this simply an oversight that Unicode character classes like "Letter" >> > and "Number, decimal digit" are not available for use in regexps, or >> > should I be using them differently? >> >> The strings you can use with \p are the ones listed in >> unicode.Categories and unicode.Scripts. So use \pL as you do in the >> second example. >> >> Ian > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/a22421cc-becb-496e-8d32-b41506536a54%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAOyqgcWZan2r3FX_UcE6XNT7vanDLUBi3QjFhyuO0%3DEZ-yG0pA%40mail.gmail.com.