我正在使用Rails 5.我想从字符串的开头删除数字,但前提是它们后跟至少一个空格。我提出了正则表达式
/^\d+[:space:]/
除了工作得太好了。下面是表达式,当它不应该
时匹配2.4.0 :032 > line = "1sb 212"
=> "1sb 212"
2.4.0 :033 > line =~ /^\d+[:space:]/
=> 0
它不应该与表达式匹配,因为第一个单词“1sb”有一个数字,但如果没有后跟空格则为数字。如何调整我的表达式,使其仅匹配一个或多个数字,后跟至少一个空格?
答案 0 :(得分:0)
您需要将POSIX字符类放入括号表达式中:
/^\d+[[:space:]]/
^ ^
请参阅Rubular demo
否则,[:space:]
被视为常规字符类,并匹配单个字符,:
,s
(1sb
后有s
p
数字),a
,c
,e
或template<class Type> XY<Type> operator-(const XY<Type>& P, const XY<Type>& Q)
。
答案 1 :(得分:0)
一个简单的解决方案是:
/^\d+\s+/
请注意,\s+
不仅捕获空格,还捕获制表符和换行符。这可能对您的情况很重要。