以下是我的正则表达式问题:如何选择具有特定ID的所有结果,例如“... ID = 99”,但不包括结果,使用额外的数字,如ID =“990”或“ID = 9923”。 但是,如果字符串计数与另一个非数字字符(“&”),例如“...... ID = 99& PARAM = 9290”也应包括在内。
我完全混淆了把它变成了一个正则表达式的选择。我非常感谢你的任何想法!
(顺便说一句,如果你真的进入正则表达式。你是如何学习它的?任何推荐的资源,书籍,教程?)
注意:我使用此功能在Google Analytics中过滤搜索结果,因为您可以在“过滤页面”表单中实际使用正则表达式。也许这对你有用。
答案 0 :(得分:1)
答案 1 :(得分:1)
回答你问题的第二部分:
就书籍而言,O'Reilly的Regular Expression Cookbook太棒了。前几章几乎涵盖了所有基础知识,然后是一些。本书的其余部分是具体的例子。
答案 2 :(得分:1)
ID=99(?!\d)
(?!\d)
是negative lookahead;它断言要么下一个字符不是数字或没有下一个字符。你没有说你正在使用什么样的正则表达式,但大多数所谓的Perl兼容口味都支持前瞻。
至于学习资源,regular-expressions.info的教程是一个很好的起点。对于高级研究,其他人推荐的Goyvaerts-Levithan书非常好,但Mastering Regular Expressions仍然是最好的。如果你能负担得起他们两个;你不会后悔的。
编辑:为安全起见,您可能希望使用\bID=99(?!\d)
来避免匹配FOO_ID=99
之类的内容。
答案 3 :(得分:0)
这将匹配ID = 99和ID = 99,后跟一个非数字字符。
ID=99(:?\D)?
如果99只是一个示例,并且您想要匹配任何两位数字,则可以使用:
ID=\d{2}(:?\D)?