Regex match everything up to first period

前端 未结 3 684
被撕碎了的回忆
被撕碎了的回忆 2020-12-17 02:51

Trying to get a lazy regex match of everything up until the first period of a sentence.

e.g. Just want to get \"jack and jill.\" from this sentence:
\"jack and j

相关标签:
3条回答
  • 2020-12-17 03:17

    If you only want the first occurrence, do not choose the scan method that returns all results in the string. You can use the match method that returns a MatchData instance, but you can also simply write:

    > "jack and jill. went up the hill. to fetch a pail."[/.+?\./]
     => "jack and jill."
    
    0 讨论(0)
  • 2020-12-17 03:22
    /^([^.]+)/
    

    Let's break it down,

    • ^ is the newline anchor

    • [^.] this matches any character that's not a period

    • \+ to take until a period

    And the expression is encapsulated with () to capture it.

    0 讨论(0)
  • 2020-12-17 03:27

    I would be inclined to use a regex, but there are other options.

    str = "jack and jill. went up the hill. supposedly to fetch a pail of water."
    str[0..i] if i = str.index('.')
      #=> "jack and jill."
    
    str = "three blind mice"
    str[0..i] if i = str.index('.')
      #=> nil
    
    0 讨论(0)
提交回复
热议问题