[a-z][A-Z] => [a-zA-Z]
you sure?
the first will match two letters, first is locase, second is capital
while the second will match a single letter, either locase or capital.



On Fri, Dec 18, 2009 at 8:40 AM, Tim Barcz <[email protected]> wrote:

> What about data scheme?
>
>
> On Thu, Dec 17, 2009 at 11:52 PM, Bill Barry <[email protected]>wrote:
>
>>  I would use one of the following (altering them some to use in .net
>> strings of course):
>>
>> ^.*?url\(\s*(?<quote>["']?)(?<Url>(?!https?:|/)[^"')]+?)\k<quote>\s*\).*?$
>>
>> options: ignorecase, multiline
>>
>> or
>>
>> url\(\s*(?<quote>["']?)(?<Url>(?!https?:|/)[^"')]+?)\k<quote>\s*\)
>>
>> options: ignorecase
>> depending on whether you want the whole line or not; the second is
>> probably better because you technically can have more than one url on a
>> line:
>> UL { background-image: url(shadow-c.png); list-style-image:
>> url(bullet.png); } /* perfectly valid css rule, under the first case you
>> would capture only one of the urls, but the second you could see both */
>>
>> These regexes may still be missing some valid urls and capturing some
>> invalid ones because I am pretty sure there is some sophisticated escaping
>> rules in play for such urls which I am outright ignoring..
>>
>> testcases (including ones that fail previous posted regexes):
>> background-image: url(images/default/shadow-c.png); /*valid*/
>> background-image: url(shadow-c.png); /*valid*/
>> background-image: url(../images/default/shadow-c.png); /*valid*/
>> background-image: url('../images/icons/file-xslx.gif') !important;
>> /*valid*/
>> background-image: url("../images/icons/file-xslx.gif") !important;
>> /*valid*/
>> background-image: url('http-header.gif') !important; /*valid*/
>> background-image: url('http_header.gif') !important; /*valid*/
>> background-image: url( 'http_header.gif') !important; /*valid*/
>> background-image: url( 'http_header.gif' ) !important; /*valid*/
>> background-image: url ( 'http_header.gif' ) !important; /*space between
>> url and ( not valid [at least according to firefox 3.5]*/
>> background-image: url('../images/icons/file-xslx.gif") !important;
>> /*non-matching quotes*/
>> background-image: url(../images/icons/file-xslx.gif") !important;
>> /*missing start quote, might still be valid depending on char escaping rules
>> to look for the file 'file-xlsx.gif"'*/
>> background-image: url("../images/icons/file-xslx.gif) !important;
>> /*missing end quote*/
>> background-image: url(/images/icons/file-xslx.gif) !important; /*absolute
>> url*/
>> background-image: url('/images/icons/file-xslx.gif') !important;
>> /*absolute url*/
>> background-image: url("/images/icons/file-xslx.gif") !important;
>> /*absolute url*/
>> background-image: url('http://example.com/images/icons/file-xslx.gif')
>> !important; /*absolute url*/
>> background-image: url(http://example.com/images/icons/file-xslx.gif)
>> !important; /*absolute url*/
>>
>>
>> Additional testcases I didn't bother with:
>>
>> background-image: url( \(.gif ) !important; /*valid, filename = (.gif */
>> background-image: url( \).gif ) !important; /*valid, filename = ).gif */
>> background-image: url( \'.gif ) !important; /*valid, filename = '.gif */
>> background-image: url( \".gif ) !important; /*valid, filename = ".gif */
>> background-image: url( \ .gif ) !important; /*valid, filename = " .gif" */
>> background-image: url( \
>> .gif ) !important; /*valid (newline is part of the filename) only when
>> served with unix line endings (filename would be invalid in windows line
>> endings because not both \r and \n are escaped here)*/
>> background-image: url(
>> a.gif ) !important; /*valid (newline is not part of the filename)*/
>> background-image: url( '\(.gif' ) !important; /*valid, filename = \(.gif
>> */
>> background-image: url( '\).gif' ) !important; /*valid, filename = \).gif
>> */
>> background-image: url( '\'.gif' ) !important; /*valid, filename = \'.gif
>> */
>> background-image: url( '\".gif' ) !important; /*valid, filename = \".gif
>> */
>> background-image: url( '\ .gif' ) !important; /*valid, filename = "\
>> .gif"*/
>> background-image: url( '\
>> .gif' ) !important; /*valid (newline and \ are part of the filename,
>> filename would be \\\n.gif if served with unix line endings, \\\r\n.gif with
>> windows line endings)*/
>>
>>
>> These are valid css rules, assuming that the filename is a valid URI
>> according to http://www.ietf.org/rfc/rfc3986 after css has taken care of
>> the escape chars. Developing a correct regex for rfc 3986 is a job suited
>> only for a regex engine like that of Perl 6 (it is a non-deterministic
>> context-sensitive grammar which makes it unsuited for any regex language
>> that has comparable capabilities to Perl 5).
>>
>>
>> James Curran wrote:
>>
>> Oops.. Sorry, insufficent test cases...
>>
>> These should match as well.
>>
>> background-image: url(images/default/shadow-c.png);
>> background-image: url(shadow-c.png);
>>
>> Also, the url itself needs to be placed into a named capture called "Url".
>>
>> Also, as a style note, in your patterns, you've written
>> "[a-z|A-Z|/|\.|-]".  Inside the group brackets, the "or" is assumed.
>> That should be [a-zA-Z/\.-].  As you wrote it, it would match a
>> literal  verticle pipe character, which would be wrong.
>>
>> On Thu, Dec 17, 2009 at 2:45 PM, Leonardo Lima<[email protected]> 
>> <[email protected]> wrote:
>>
>>
>>  Hi,
>>
>> Here I tested at Regex Buddy and worked only for the 3 first entries, sorry
>> I think that I don´t understand your question...
>>
>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Castle Project Development List" group.
>>
>> To post to this group, send email to
>> [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<castle-project-devel%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/castle-project-devel?hl=en.
>>
>
>
>
> --
> Tim Barcz
> Microsoft C# MVP
> Microsoft ASPInsider
> http://timbarcz.devlicio.us
> http://www.twitter.com/timbarcz
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Castle Project Development List" group.
>
> To post to this group, send email to [email protected]
> .
> To unsubscribe from this group, send email to
> [email protected]<castle-project-devel%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/castle-project-devel?hl=en.
>



-- 
Ken Egozi.
http://www.kenegozi.com/blog
http://www.delver.com
http://www.musicglue.com
http://www.castleproject.org
http://www.idcc.co.il - הכנס הקהילתי הראשון למפתחי דוטנט - בואו בהמוניכם

--

You received this message because you are subscribed to the Google Groups 
"Castle Project Development List" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-devel?hl=en.


Reply via email to