Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if a string contains a substring. Additionally, get index and number of match (Raku)

Tags:

raku

FAQ: In Raku, how to check if a String contains a substring ? Where and how many times ? I would like 3 functions such as:

xxx-bool("az and az and az again", "az");  # True 
xxx-num("az and az and az again", "az");   # 3
xxx-list("az and az and az again", "az");  # (0 7 14) 

PS: Routines index and rindex are pretty cool but only get one match.

Related Links:

  • Answer with Regex
  • Answer on List (Array)
  • Contiguous Sequences on List
  • Answer on Hash (Dictionary)
like image 878
Tinmarino Avatar asked Mar 25 '20 16:03

Tinmarino


1 Answers

  1. To check if it contains, use .contains to get a Bool which is a cool method.
  2. To get indices (alias indexes: both are plural of index) use .indices
  3. To get number, count the indices.
"az and az and az again".contains("az");        # True
"az and az and az again".indices("az").elems;   # 3
"az and az and az again".indices("az");         # (0 7 14)

PS: Routine indices is described just after index and rindex. So read the good doc, and read it well ;-)

  • Links:

    • contains in regex
    • Same question in Python, Perl
like image 86
Tinmarino Avatar answered Sep 19 '22 12:09

Tinmarino