我正在尝试将From线路一直匹配到以下行的末尾Subject:
....
From: XXXXXX
Date: Tue, 8 Mar 2011 10:52:42 -0800
To: XXXXXXX
Subject: XXXXXXX
....
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有:
/From:.*Date:.*To:.*Subject/m
Run Code Online (Sandbox Code Playgroud)
但这与主题行的结尾不符.我尝试添加,$但没有效果.
写一个方法'valid_string?' 接受一个字符串.如果括号,括号和花括号正确关闭,则返回true.否则返回false.
valid_string?("[ ]") # returns true
valid_string?("[ ") # returns false
valid_string?("[ ( text ) {} ]") # returns true
valid_string?("[ ( text { ) } ]") # returns false
Run Code Online (Sandbox Code Playgroud)
我的代码:对所有事情都是假的.甚至尝试对个别情况{} ||使用显式布尔值 ()||等没有用.对于一切都返回true或false.这是我的驱动程序代码吗?
def valid_string?(str)
if str == ("\[\s+]")
true
else
false
end
end
Run Code Online (Sandbox Code Playgroud)
更新的解决方案:----------------------------------------------- - 是的!#match绝对更好!虽然我的最后一行测试代码正在评估为true.什么时候应该是假的...
def valid_string?(str)
if str.match "(\\[.+\\])" || "|(\\(\\))" || "|({})"
return true
else
return false
end
end
puts valid_string?("[ ]") # returns true
puts valid_string?("[ ") # returns false
puts valid_string?("[ ( text …Run Code Online (Sandbox Code Playgroud) 注意到Rubular.com和Javascript正则表达式之间的区别:
'catdogdogcatdog'.match(/cat(dog)/g); // JS returns ['catdog', 'catdog']
Run Code Online (Sandbox Code Playgroud)
我期望两次捕获'狗',但我得到'catdog'两次.
Rubular按预期捕获"狗"两次:http://rubular.com/r/o7NkBnNs63
这到底发生了什么?
我必须清理参数中传递的字符串,并删除所有小写字母和所有特殊字符,除了:
所以我在参数中传递了这个字符串:
aA azee + B => C=
我需要清理此字符串以获得此结果:
A + B => C
我做
string.gsub(/[^[:upper:][+|^ ]]/, "")
输出: "A + B C"
我不知道如何在ruby中用正则表达式选择=>(和for <=>)字符串
我知道如果我将string.gsub(/ [^ [:upper:] [+ | ^ =>]] /,"")添加到我的正则表达式中,=我的字符串中传递的最后一个参数也会被选中