正则表达式。 \ b代表西里尔符号

时间:2019-04-16 19:45:12

标签: regex pcre cyrillic

请告诉我,除了 \ b 以外,还有什么可以用来突出显示文字呢?

SQLite数据库列中有一个文本“текст”。

正在工作:

select * from myTable where text REGEXP 'текст'

它不起作用:

select * from myTable where text REGEXP '\bтекст\b'

1 个答案:

答案 0 :(得分:2)

事实证明您的SQLite REGEXP实现基于PCRE。

您可以使用\b PCRE动词使(*UCP) Unicode感知:

'(*UCP)\bтекст\b'

pcrepattern man page上有一些有关动词的细节:

  

另一个可能出现在模式开头的特殊序列是(*UCP)。这与设置PCRE_UCP选项具有相同的效果:它导致诸如\d\w之类的序列使用Unicode属性来确定字符类型,而不是仅识别代码小于128的字符通过查找表。

后来:

  

还要注意,PCRE_UCP影响\b\B,因为它们是根据\w\W定义的。设置PCRE_UCP时,匹配这些序列的速度明显变慢。

好吧,它会慢一些,因为它现在必须处理整个Unicode表。