红宝石正则表达式分裂字符串。但不是如果它的一部分包含在排除列表中

时间:2012-12-02 11:44:20

标签: ruby regex split

我想通过特定字符来分割句子,但是这个字符不是用作排除列表中包含的单词的一部分。例如,我想用句子分割句子“。”但我只是在“Dr”或“Prof”之后没有使用它。例如:

“我是物理学博士,我的名字是Sheldon Cooper。我在帕萨迪纳大学工作。”

所以正则表达式应该在“Cooper”之后由fullstop分割,而不是在“Dr”之后。

2 个答案:

答案 0 :(得分:2)

你可以使用负面的lookbehind:

a = "Im a Dr. of Physics and my Name is Sheldon Cooper. Im working at the University of Pasadena."
a.split(/(?<!Dr|Prof)\./)
#=> ["Im a Dr. of Physics and my Name is Sheldon Cooper", " Im working at the University of Pasadena"]

答案 1 :(得分:1)

您可以单独定义标题。没有其他办法可以做到这一点。你应该像这样设置:Dr | Prof | Assoc