- From: Jeni Tennison <jeni@jenitennison.com>
- Date: Wed, 2 Jul 2003 10:05:20 +0100
- To: "Michael Rys" <mrys@microsoft.com>
- CC: "Kay, Michael" <Michael.Kay@softwareag.com>, public-qt-comments@w3.org
Hi Michael, [regarding errors in the examples of fn:matches()] > The first one is within a line, but the strings are distributed over > two lines. > > The second one is using the multi-line option, so it should find it, > but it currently returns true. Etc. > > Either the examples are wrong or the description of multiline > matching is confusing. The behaviour for the particular examples is described in 7.5.1 Regular Expression Syntax, where it says: * In string mode, the metacharacter . matches any character whatsoever. In multiline mode, the metacharacter . matches any character except a newline (#x0A) character. The first example: fn:matches(., "Kaum.*krähen") is in string mode, so the metacharacter . matches any character whatsoever, including newline (#x0A) characters. Thus it will return true despite the fact that "Kaum" and "krähen" appear on different lines, because the . can match the newline character between them. The second example: fn:matches(., "Kaum.*krähen", 'm') is in multiline mode, so the metacharacter . matches any character aside from newline (#x0A) characters. Thus it will return false because "Kaum" and "krähen" have a newline character (which can't be matched by the .) between them. Personally, I think that the spec is clear, but perhaps you have some suggested wording that would make it clearer? Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/
Received on Wednesday, 2 July 2003 05:05:25 UTC