正则表达式匹配第一期的一切

时间:2017-06-01 17:46:00

标签: ruby regex

尝试在句子的第一段句子之前获得所有内容的惰性正则表达式匹配。

e.g。只想得到"杰克和吉尔。"从这句话:
"杰克和吉尔。上山了。拿一个桶。"

/.+\./匹配整个句子(example
/(.+?\.)/匹配每个实例(example

有没有办法匹配第一个实例?

3 个答案:

答案 0 :(得分:4)

FileWriter

让我们分解,

  • Graph是换行符

  • /^([^.]+)/ 这匹配任何不是句号的字符

  • ^要等到一段时间

表达式用()封装以捕获它。

答案 1 :(得分:1)

如果您只想要第一次出现,请不要选择返回字符串中所有结果的scan方法。您可以使用返回MatchData实例的match方法,但您也可以简单地写:

> "jack and jill. went up the hill. to fetch a pail."[/.+?\./]
 => "jack and jill."

答案 2 :(得分:0)

我倾向于使用正则表达式,但还有其他选择。

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
相关问题