- From: <bugzilla@wiggum.w3.org>
- Date: Sun, 06 May 2007 19:59:51 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=4543
Summary: [F+O] Multiline mode in regular expressions
Product: XPath / XQuery / XSLT
Version: Recommendation
Platform: PC
OS/Version: Windows XP
Status: NEW
Severity: normal
Priority: P2
Component: Functions and Operators
AssignedTo: ashok.malhotra@oracle.com
ReportedBy: mike@saxonica.com
QAContact: public-qt-comments@w3.org
I previously raised this issue by email (member-only):
http://lists.w3.org/Archives/Member/w3c-xsl-query/2006Aug/0020.html
http://lists.w3.org/Archives/Member/w3c-xsl-query/2006Aug/0021.html
and the minutes of meeting 308 record the following:
http://lists.w3.org/Archives/Member/w3c-xml-query-wg/2006Sep/0027.html
J5.1 Multiline mode in regular expressions (Michael Kay)
http://lists.w3.org/Archives/Member/w3c-xsl-query/2006Aug/0020.html
see also:
http://lists.w3.org/Archives/Member/w3c-xsl-query/2006Aug/0021.html
*Michael will open a bugzilla report and resolve it with the suggested changes.
It appears however that this was not recorded as an official action and was
therefore not pursued. The problem remains in the spec. Specifically:
Consider the expression
matches($in, '^.*$', 'm')
Intuitively, this returns true if $in contains a zero-length line. I believe
that on both Java and .NET, there is not considered to be a zero-length line
between a final newline character and the end of the string, so if $in is:
"abcd
defg
"
the expression will return false. But with our spec, I think there is a
zero-length line after the final newline, so this expression will return
true.
I think that in 7.6.1.1 Flags, under the description of flag "m", we should
change
^ matches the start of any line (that is, the start of the entire string,
and the position immediately after a newline character)
to
^ matches the start of any line (that is, the start of the entire string,
and the position immediately after a newline character other than a newline
that appears as the last character in the string)
and change:
"while $ matches the end of any line (that is, the end of the entire string,
and the position immediately before a newline character)"
to
while $ matches the end of any line (that is, the position immediately
before a newline character, and the end of the entire string if there is no
newline character at the end of the string)
Received on Sunday, 6 May 2007 19:59:58 UTC