我正在尝试获取此字符串中的第一个单词:Basic (11/17/2011 - 12/17/2011)
所以最终还是希望得到Basic
。
其他示例字符串:Premium (11/22/2011 - 12/22/2011)
格式总是“单字后跟括号日期范围”,我只想要单词。
答案 0 :(得分:4)
使用此:
str = "Premium (11/22/2011 - 12/22/2011)"
str.split.first # => "Premium"
如果您未指定任何内容,则拆分使用' '
作为默认参数
之后,获取带有first
答案 1 :(得分:2)
你不需要regexp,你可以使用
str.split(' ')[0]
答案 2 :(得分:1)
我知道你找到了你需要的答案,但万一有人在将来偶然发现这个问题,以便从未知长度的String
中获取所需的价值:
word_you_need = s.slice(/(\b[a-zA-Z]*\b \(\d+\/\d+\/\d+ - \d+\/\d+\/\d+\))/).split[0]
答案 3 :(得分:0)
此正则表达式将匹配第一个单词与尾随空格
"^\w+ ??"
答案 4 :(得分:0)
如果你真的想要一个正则表达式,你可以在使用这个正则表达式后获得第一组:
(\w*) .*
答案 5 :(得分:0)
“单字后跟括号日期范围”
'word'和'括号日期范围'应该更好地定义
因为,根据您的要求声明,它们应该是锚点和/或分隔符。
这些原始正则表达式只是一般猜测。
\w+(?=\s*\([^)]*\))
或
\w+(?=\s*\(\s*\d+(?:/\d+)*\s*-\s*\d+(?:/\d+)*\s*\))
答案 6 :(得分:0)
实际上,您只需要:
s.split[0]
...或...
s.split.first