[ https://issues.apache.org/jira/browse/XERCESC-1910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12832466#action_12832466 ]
Boris Kolpackov commented on XERCESC-1910: ------------------------------------------ Steve, do I understand you correctly in that you are saying that certain functionality (that you used to rely on) has been removed between the two version as opposed to that there is a bug that affects the current version? > The RegularExpression 'matches' function no longer returns the start and end > position of a match > ------------------------------------------------------------------------------------------------ > > Key: XERCESC-1910 > URL: https://issues.apache.org/jira/browse/XERCESC-1910 > Project: Xerces-C++ > Issue Type: Bug > Components: Utilities > Affects Versions: 3.0.1 > Environment: Windows > Reporter: Steve Roberts > > We have recently upgraded from version 2.2.0 to version 3.0.1. Between these > versions a change was made to the RegularExpression::matchUnion function, so > that it now uses a local version of the context structure. The result of this > is that the 'fMatch' member of the context can be changed from its original > instance. Therefore, back in the RegularExpression::matches function, just > before it returns, it sets the start and end position of the match: > context.fMatch->setStartPos(0, (int)matchStart); > context.fMatch->setEndPos(0, matchEnd); > However, the 'fMatch' object no longer matches the one that was passed > through to function (due to what happened in 'matchUnion') and therefore > these values don't get returned to the calling function. > Therefore, I think that in the 'matches' function is should actually be > setting the start and end position of the 'pMatch' property that is passed > into the function, rather than the 'context.fMatch'. > The code we are using to call the regular expression is this: > XERCES_CPP_NAMESPACE::RegularExpression re(expression.c_str()); > if( re.matches( text, &match ) ) > { ... > where expression = "([\-\(]?\d{1,3}([, > ]\d{3})+\.\d+[\)]?|[\-\(]?\d+\.\d+[\)]?).*" > and text = "13.13" -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org For additional commands, e-mail: c-dev-h...@xerces.apache.org