jxxcarlson
Regex weirdness -- Aargh!
I have a Regex that works correctly in tests but not when my run my app. No idea what is going on. Here is the regex expression: Regex.scan(~r/^\[([a-z].*)\].--.(.*).--/msU, text) .
Here is the string I apply it to:
[quote]
--
foo, bar
baz
--
fdfd
The correct scan result is
# [quote]
# --
# foo, bar
# baz
# --
# fdfd
["[quote]\n--\nfoo, bar\nbaz\n--",
"quote",
"foo, bar\nbaz"]
This is what I get using the regex tester at elixre.uk and also when I run tests with mix test ... However, when I use the above regex expression in my app, the result is an empty list – the regex recognizes nothing. What to do?
Marked As Solved
NobbZ
Your regular expression fails for me if I put windows line endings in the string ("\r\n") instead of Linux ones ("\n"). The option
This is, because . does match only \r then, after that the regex demands to get a - but there is \n, so it fails.
So you have 3 options:
- Demand the client to deliver only Linux-Endings, but depending on the tech knowledge of the client that may be impossible
- Normalize the input before feeding to the RE-scan, which should be the easiest one
- replace the dots that shall match line endings by
(?:\r|\n|\r\n), but the output needs to be cleaned up as well.
5
Also Liked
jxxcarlson
Popular in Questions
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: )
Hello all, this is ...
New
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? Ecto.Repo — Ecto v3.14.0 has exampl...
New
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
Other popular topics
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine)
This is a plugin that adds support for Elixir to JetBrains IntelliJ...
New
Hi guys, i’m new in the Elixir world, and i have to say, that i love it!
i’m having some problem to understand anonymous functions with ...
New
Hi there,
I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 records...
New
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set?
Thanks.
New
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service.
Currently when I de...
New
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
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
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex









