我在正则表达式中完全是一个菜鸟。对于Ruby on Rails项目,我需要一个字段来允许所有字母,但禁止双引号。知道如何制定这个吗?
非常感谢
答案 0 :(得分:1)
只使用否定的字符类:
[^"]
字符类将包含除双引号之外的所有字符。如果您想验证您可能想要的字符串
^[^"]*$
匹配字符串。
答案 1 :(得分:1)
如果您想使用format validation helper:
validates :your_field, format => {
:with => /\A[^"]+\z/,
:message => "No quotes allowed"
}
正则表达式:
从字符串开头 \A
[^"]
允许除"
+
一次或多次
\z
到字符串
答案 2 :(得分:0)
您可以使用:
if subject =~ /\b[[:alpha:]]+\b/i
# Successful match
else
# Match attempt failed
end
<强>解释强>
"
\\b # Assert position at a word boundary
[[:alpha:]] # Match a single character present in the list below
# A character in the POSIX character class “alpha”
+ # Between one and unlimited times, as many times as possible, giving back as needed (greedy)
\\b # Assert position at a word boundary
"
答案 3 :(得分:0)
您需要指定从开头到结尾的每个字符不得为"
:
^[^"]*$
这意味着:
^
:匹配必须从行或字符串的开头开始;
[^"]
:匹配除"
以外的任何字符(字母,标点符号......);
*
:匹配前一项零次或多次;
$
:匹配必须在行或字符串的末尾结束。