【发布时间】:2012-06-11 20:50:42
【问题描述】:
我正在为用户构建一个小型过滤器实用程序来快速过滤项目列表,并且我想按顺序匹配单词的开头,最好使用正则表达式:
考虑一个用户试图找到标记为here is some text的项目。
- 我已经知道如何让它匹配任何一个单词的开头:
her — here 是一些文字 — \bher
so — 这里是 so me text — \bso
ext — 不匹配 — \bext
- 而且我知道如何让它匹配几个单词的首字母:
hist — here is some text — @ 987654325@
ht — h是一些 text — \bh.*?\bt
- 我需要的是能够匹配几个单词的前
n字符:
herst — here 是 some text
iso > - 这里我s 所以我的文字
teh - 不匹配
我这样做是因为我的项目通常包含 intialisms,用户可能会键入 usc 来尝试快速拉出 USA、C加利福尼亚州
我正在为每个输入重写模式,所以我可以做一些工作,这在案例 #2 中是必要的。我正在寻找一种能够随字符数线性扩展的解决方案,无论是模式复杂度还是总复杂度。
鉴于这些限制,我匹配这些字符串的最佳选择是什么?
【问题讨论】: