【发布时间】:2017-12-22 05:29:54
【问题描述】:
如果在字符串末尾找到来自数组的标记,我想将字符串分成两部分。我试过这个:
x = "Canton Female"
GENDER_TOKENS = ["m", "male", "men", "f", "w", "female", "wom"]
x.partition(/(^|[[:space:]]+)[#{Regexp.union(GENDER_TOKENS)}]$/i)
#=> ["Canton Female", "", ""]
但是,虽然“女性”这个词是我标记的一部分,但它并没有被分开。如何调整我的正则表达式以使其正确拆分?
【问题讨论】:
-
你想返回什么值?
-
您犯了同样的错误:您在正则表达式文字中使用
Regexp.union并且i不会影响这些交替。另外,你把这个组放到一个字符类中,它完全破坏了这个模式。不知道你需要什么,见this demo,试试x.partition(/(?:^|[[:space:]]+)(?:#{Regexp.union(GENDER_TOKENS).source})$/i)
标签: ruby regex string split ruby-2.4