禁止使用正则表达式的字符(双引号)

时间:2012-06-08 10:35:13

标签: ruby-on-rails regex

我在正则表达式中完全是一个菜鸟。对于Ruby on Rails项目,我需要一个字段来允许所有字母,但禁止双引号。知道如何制定这个吗?

非常感谢

4 个答案:

答案 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)

您需要指定从开头到结尾的每个字符不得为"

^[^"]*$

这意味着:
^:匹配必须从行或字符串的开头开始;
[^"]:匹配除"以外的任何字符(字母,标点符号......); *:匹配前一项零次或多次;
$:匹配必须在行或字符串的末尾结束。