Skip to content

An Elixir Library to run several regular expressions on a string and get values back.

License

Notifications You must be signed in to change notification settings

jnylen/string-matcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StringMatcher

This library allows you to pass multiple regular expressions and a string and get values back.

Example

Let's say you have a text that is:

Del 5 av 6. Shakespeare är mycket nöjd med sin senaste pjäs, Så tuktas en argbigga. Men av någon anledning uppskattas inte berättelsen om hur en stark kvinna förnedras av en man av kvinnorna i Shakespeares närhet.

Originaltitel: Upstart Crow.
Produktion: BBC 2017.

First we would split the text into an array based on \n and . so that we can loop over the long text, as our matches only returns the first match back.

Then you would do:

StringMatcher.new()
|> StringMatcher.add_regexp(
  ~r/Del\s+(?<episode_num>[0-9]+?)\s+av\s+(?<of_episodes>[0-9]+?)/i,
  %{}
)
|> StringMatcher.add_regexp(~r/Originaltitel: (?<original_title>.*)\./i, %{})
|> StringMatcher.add_regexp(
  ~r/Produktion: (?<production_company>.*?) (?<production_year>[0-9]+)\./i,
  %{}
)
|> StringMatcher.match_captures(string)

This should return a tuple with a map. The map is returned value of the regular expressions. If no match is found you will receive {:error, "no match"}

Installation

If available in Hex, the package can be installed by adding string_matcher to your list of dependencies in mix.exs:

def deps do
  [
    {:string_matcher, "~> 0.1.0"}
  ]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/string_matcher.

Tests

Currently the tests are failing for some reason, the library is working though and is stable. It's used in production.

About

An Elixir Library to run several regular expressions on a string and get values back.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages