[swift-evolution] Empower String type with regular expression

Dave Abrahams dabrahams at apple.com
Mon Feb 1 10:18:20 CST 2016


on Sun Jan 31 2016, John Randolph <swift-evolution at swift.org> wrote:

>> On Jan 31, 2016, at 7:39 PM, Chris Lattner via swift-evolution
>> <swift-evolution at swift.org> wrote:
>> 
>>> 
>>> On Jan 31, 2016, at 8:32 AM, Patrick Gili via swift-evolution
>
>>> <swift-evolution at swift.org
>>> <mailto:swift-evolution at swift.org>>
>>> wrote:
>>> 
>>> There have been several threads that have discussed the notion of a
>>> regular expression literals. However, I didn't see anyone putting
>>> together a formal proposal, and hence I took the liberty to do
>>> so. I would appreciate discussion and comments on the proposal:
>> 
>> I am +1 on the concept of adding regex literals to Swift, but -1 on this proposal.
>> 
>> Specifically, instead of introducing regex literals, I’d suggest
>> that you investigate introducing regex’s to the pattern grammar,
>> which is what Swift uses for matching already.  Regex’s should be
>> usable in the cases of a switch, for example.  Similarly, they
>> should be able to bind variables directly to subpatterns.
>> 
>> Further, I highly recommend checking out Perl 6’s regular
>> expressions.  They are a community that has had an obsessive passion
>> for regular expressions, and in Perl 6 they were given the chance to
>> reinvent the wheel based on what they learned.  What they came up
>> with is very powerful, and pretty good all around.
>
> Perl 6’s regex implementation looks like a logical progression of the
> grep style as we’ve come to know it over the years, but I’d really
> like to see Swift go with something like the Verbal Expressions
> approach.
>
> https://github.com/VerbalExpressions/SwiftVerbalExpressions
>
> All the power is there, but it’s far more readable.

It's more readable for a first-timer, but IMO not for anyone trying to
work with really complex regex's.  Can you imagine doing math or music
this way?  There's a reason people invent specialized notations.

-- 
-Dave



More information about the swift-evolution mailing list