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

问题描述 投票:2回答:1

请告诉我,可以使用什么代替\ b来强调cyrilic文本中的单词?

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

它的工作原理:

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

它不起作用:

select * from myTable where text REGEXP '\bтекст\b'
regex pcre cyrillic
1个回答
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表。

© www.soinside.com 2019 - 2024. All rights reserved.