分隔换行符和逗号和分号

时间:2012-01-22 14:51:56

标签: ruby-on-rails regex ruby-on-rails-3

我想收集一个由用户输入的textarea值的人名,并将它们分成数组中的项目。

从理论上可能的输入:

people = "Abby Andrews, Ben \r\nCharlie Connors    Daphne D., Ernie E. Engels; Faye\r\n\r\nGary Gomez"

array = people.split('??')

如何构建正则表达式以成功分割出如上所述的疯狂链?

应分开:

  • \r\n\r\n
  • 逗号(,)或分号(;
  • 多个空格

不应拆分:

  • 期间(这可能是某人的首字母)
  • 单个空格(可以分隔名字和姓氏)

我尝试了people.split(/\r\n,;/)people.split(/,;\r\n/)及其组合,但没有产生结果。

1 个答案:

答案 0 :(得分:11)

尝试

array = people.split(
    /\s*[,;]\s* # comma or semicolon, optionally surrounded by whitespace
    |           # or
    \s{2,}      # two or more whitespace characters
    |           # or
    [\r\n]+     # any number of newline characters
    /x)