Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

regex - MongoDB uXXXX issue

In my collection following query returns some result:

db.c.find({t:/a/})

But below query (and any other regex that has uXXXX) returns no result:

db.c.find({t:/u0041/})

What is wrong?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

The reason for this is that according to the documentation

MongoDB uses PCRE for regular expressions.

However the PCRE documentation says

The following Perl escape sequences are not supported: l, u, L, U, and N when followed by a character name or Unicode value. (N on its own, matching a non-newline character, is supported.) In fact these are implemented by Perl's general string-handling and are not part of its pattern matching engine. If any of these are encountered by PCRE, an error is generated by default. However, if the PCRE_JAVASCRIPT_COMPAT option is set, U and u are interpreted as JavaScript interprets them.

That said, this SO question may be of some help.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...