我需要根据相当复杂的查询过滤字符串集合 - 在它的“原始”形式中,它看起来像这样:
nano* AND (regulat* OR *toxic* OR ((risk OR hazard) AND (exposure OR release)) )
要匹配的字符串之一的示例:
Workshop on the Second Regulatory Review on Nanomaterials, 30 January 2013, Brussels
所以,我需要使用 AND OR 和通配符进行匹配 - 所以,我想我需要在 JavaScript 中使用正则表达式。
我所有的循环、过滤和一般工作都正确,但我 100% 确定我的正则表达式是错误的 - 并且一些结果被错误地省略 - 这里是:
/(nano[a-zA-Z])?(regulat[a-zA-Z]|[a-zA-Z]toxic[a-zA-Z]|((risk|hazard)*(exposure|release)))/i
任何帮助将不胜感激 - 我真的无法正确抽象我的思想来理解这种语法!
UPDATE:
很少有人指出正则表达式构建顺序的重要性,但是我无法控制要搜索的文本字符串,因此我需要找到一个无论顺序如何都可以工作的解决方案。
UPDATE:
最终使用了 PHP 解决方案,由于 twitter API 1.0 已弃用,请参阅pastebin 作为示例函数(我知道最好在此处粘贴代码,但有很多...):
功能:http://pastebin.com/MpWSGtHK http://pastebin.com/MpWSGtHK
usage: http://pastebin.com/pP2AHEvk http://pastebin.com/pP2AHEvk
感谢所有帮助