Claims
- 1. A system for processing regular expressions containing one or more subexpressions, comprising:
means for storing information regarding one or more regular expressions, each containing one or more sub-expressions; means for comparing data to the stored information regarding expressions in only a single pass through the data; means for determining from the comparison, for any stored expression, the location within the data of the beginning and end of each sub-expression, and the end of the regular expression; and means for identifying from such determination the presence within the data of any one or more stored regular expressions containing one or more sub-expressions.
- 2. The system of claim 1, wherein the means for storing information regarding regular expressions comprises means for converting a regular expression to tables stored in memory.
- 3. The system of claim 2, wherein the means for determining comprises means for saving, upon the start or end of a sub-expression, an identification of a rule with which the subexpression is associated, an identification of the sub-expression within that rule, and an identification of whether it is the start or end of a sub-expression.
- 4. The system of claim 3, wherein the means for saving comprises storing the identifications in an addressable memory.
- 5. The system of claim 4, further comprising means for keeping track of the next location within the addressable memory for storing an identification.
- 6. The system of claim 3, wherein the means for saving comprises means for storing the byte offset of the data which comprises the start or end of a sub-expression.
- 7. The system of claim 2, wherein there is one table for each regular expression containing one or more sub-expressions.
- 8. The system of claim 7, wherein the table for each regular expression containing one or more sub-expressions comprises a quantity of elements equal to at least twice the maximum number of sub-expressions in the rule, so that the start and end of each sub-expression can be separately stored.
- 9. A system for processing regular expressions containing one or more subexpressions, comprising:
means for storing information regarding one or more regular expressions, each containing one or more sub-expressions, including converting a regular expression to tables stored in memory, wherein there is one table for each regular expression containing one or more sub-expressions, and wherein such tables each comprise a quantity of elements equal to at least twice the maximum number of sub-expressions in the rule, so that the start and end of each sub-expression can be separately stored in a table; means for comparing data to the stored information regarding expressions in only a single pass through the data; means for determining from the comparison, for any stored expression, the location within the data of the beginning and end of each sub-expression, and the end of the regular expression, wherein the means for determining includes means for saving, upon the start or end of a sub-expression, an identification of a rule with which the sub-expression is associated, an identification of the sub-expression within that rule, and an identification of whether it is the start or end of a sub-expression, and wherein the means for saving comprises means for storing the byte offset of the data which comprises the start or end of a sub-expression in an addressable memory; means for identifying from such determination the presence within the data of any one or more stored regular expressions containing one or more sub-expressions; and means for keeping track of the next location within the addressable memory for storing an identification.
CROSS REFERENCE TO RELATED APPLICATION
[0001] This application claims priority of Provisional application serial No. 60/359,532, filed on Feb. 25, 2002.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60359532 |
Feb 2002 |
US |