KimberlyBrooke
Elixir Exercism Acronym
I am working to understand xianrusso’s solution to Exercism’s Acronym solution.
defmodule Acronym do
def abbreviate(string) do
Regex.scan(~r/(?<![A-Z])[A-Z]|(?<!\')\b[a-z]/, string)
|> List.flatten
|> Enum.map(&String.upcase/1)
|> Enum.join
end
end
The portion that I am working to digest is the Regex.
I believe this link contains the answer I just want to confirm that what I am thinking is happening is indeed what is happening. Advanced Regex Tutorial—Regex Syntax
I believe that in this ~r/(?<![A-Z])[A-Z]/ - that the (?<![A-Z]) is saying that as long as where we are at in the string does not have a capital letter that immediately precedes it then we can continue to keep matching it to [A-Z].
I believe that in this ~r/(?<!')\b[a-z]/ it is saying that as long as where we are at in the string there is not a ' that precedes it then we can keep matching it to \b[a-z]
Trending in Challenges
Other Trending Topics
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #blog-post
- #elixirconf-us
- #elixir-ls
- #ai
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 4- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
eksperimental
quiet, but note that
\bis s zero-width (same as lookbehinds) assertion, which is a word boundary. A limit between \w (a word) and a non-word (\W), or the beginning or end of a word.So the second part of the regex is telling you [a-z] preceeded by any non-word that is not a single quote, and it can match a [a-z] at the beginning of the string.
eksperimental
The regex commented out in plain English:
Note the regex is valid, feel free to use it in your code, if you want.
KimberlyBrooke
Thank you!
eksperimental
No worries