用于搜索子集的正则表达式

时间:2012-05-22 08:03:14

标签: regex search

我正在寻找一种方法将字符串搜索成一个大集合,但不考虑包含特定字符序列的字符串。 例如:

原始集合是:

proc-smile
func-get-aaa
func-get-smile
func-has-ccc
func-has-ddd
func-hello-bye
func-cheers-hey
func-smile-lol

如果用户搜索“sm”,则正则表达式必须仅考虑由不包含“-get-”或“-has-”子串的字符串组成的子集。因此,结果必须是:

proc-smile
func-smile-lol

(没有func-get-smile)

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

^(?!.*-(?:get|has)-).*sm

将匹配包含sm但其中不包含-get--has-的字符串。

(?!...)是否定的lookahead assertion