Converting PCRE to POSIX regular expression
我正在研究一个MySQL数据库,发现它本身不支持PCRE(需要一个插件)。
我希望将这三个值用于某些数据验证(这些值实际上是给定给
我该怎么做?我在网上查过,但找不到任何具体的例子或答案。此外,似乎没有任何实用程序可以自动执行此操作。
我知道有些时候,这种转换是不准确的,可以产生差异,但我愿意尝试。
"mysql文档的状态是: P / < >
MySQL uses Henry Spencer's implementation of regular expressions, which is aimed at conformance with POSIX 1003.2. MySQL uses the extended version to support pattern-matching operations performed with the
REGEXP operator in SQL statements.
好的,所以我们说点关于posix这个。 P / < >
本页列出的细节之间的各种regex flavors,所以我会用它作为cheatsheet。 P / < >
你在用: P / < >
- anchors:
^ - 字符类:
[ ...] - 烃类quantifier:
{n,m}
所有这些都是supported出箱在posix的家,所以你可以使用这个expression三也。但escaping的
1 | ^[A-Za-z. ]{3,36} |
这一用途的
1 | ^[a-z0-9.]{3,24}$ |
不,不是我的。你是用lookaheads。这些都是完全从英语scope为posix这个,但你可以工作在这样的限制,由combining several SQL clauses为一个konizit逻辑: P / < >