(?=foo) Lookahead Asserts that what immediately follows the current position in the string is foo
(?<=foo) Lookbehind Asserts that what immediately precedes the current position in the string is foo
(?!foo) Negative Lookahead Asserts that what immediately follows the current position in the string is not foo
(?<!foo) Negative Lookbehind Asserts that what immediately precedes the current position in the string is not foo
I’ve written the small library `re-template-tag` that provides a template tag function for composing regular expressions. This blog post explains how it works.
you cannot use a negated character class to match a q not followed by a u. Negative lookahead provides the solution: q(?!u).
Positive lookahead works just the same. q(?=u) matches a q that is followed by a u
Possessive quantifiers are a way to prevent the regex engine from trying all permutations. This is primarily useful for performance reasons. You can also use possessive quantifiers to eliminate certain matches.
P. Pantel, und M. Pennacchiotti. Ontology Learning and Population: Bridging the Gap between Text and Knowledge, Volume 167 von Frontiers in Artificial Intelligence and Applications, IOS Press, (2008)
Y. Li, R. Krishnamurthy, S. Raghavan, S. Vaithyanathan, und H. Jagadish. Proceedings of the 2008 Conference on Empirical Methods in Natural Language Processing, Seite 21--30. Honolulu, Hawaii, Association for Computational Linguistics, (Oktober 2008)