需要创建一个像搜索语法的gmail;也许使用正则表达式?

时间:2010-11-16 19:46:09

标签: regex search

我需要在列出用户帐户的页面上增强搜索功能。而不是为每个可能的字段设置多个搜索框,或者用户只能搜索一个字段的下拉菜单,我想要一个搜索框并使用类似gmail的语法。这是我描述它的最佳方式,我的意思是像搜索语法这样的gmail能够在输入框中输入以下内容:

用户名:bbaggins类型:admin“made up plc”

提交表单时,应将搜索字符串拆分为单独的部分,这样我就可以构建SQL查询。因此,例如, type:admin 将构成WHERE子句的一部分,以便它可以找到字段 type 等于 admin 的任何记录和用户名相同。引号中的文字可能是自由文本搜索,但我还不确定。

我认为一两个正则表达式是最好的方法,但这是我真的不擅长的。任何人都可以帮助构建一个可用于此目的的正则表达式吗?我一直在寻找一些指针,但要么我不知道要搜索什么,要么它不在那里,因为我找不到任何明显的东西。也许如果我更好地理解正则表达式会更容易: - )

干杯,

亚当

3 个答案:

答案 0 :(得分:1)

不,你不会为此使用正则表达式。只需使用您正在使用的任何语言将字符串拆分为空格。

答案 1 :(得分:1)

您不一定要使用正则表达式。正则表达式很强大,但在许多情况下也很慢。正则表达式does not handle nested parameters very well。编写一个使用字符串操作来分割字符串并提取关键字和字段名称的脚本会更容易。

如果您想体验正则表达式,请尝试在线REGex tester。找到一个教程并玩游戏,这很有趣,你应该能够快速生成有用的正则表达式,找到:字符之前或之后的任何单词,或"引号之间的任何句子。

答案 2 :(得分:0)

感谢答案......我确实开始没有正则表达式,只是想知道正则表达式会更简单。听起来不会这样,所以我会回到我做的方式并再次测试它。

老Bilbo先生是我的任何命名需求的人: - )

干杯,

亚当