[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