当前位置: 首页 > 知识库问答 >
问题:

使用正则表达式验证逗号分隔单词字符串的格式

段干博明
2023-03-14

我正在尝试使用正则表达式验证ruby类中文本字段中逗号分隔的单词字符串。以下应该是有效的:

word

word, word, word

word,word,word

以下内容应无效:

word word word

我以为这能行

/([a-z]+){1}(,\s*[a-z]+)*/i

在Rubular上,它似乎是有效的,但当我在我的类中进行如下验证时,它会接受应该是无效字符串的内容。

@tag_regex = /([a-z]+){1}(,\s*[a-z]+)*/i

validates :tags, 
:allow_blank => true,
:format => { :with => @tag_regex, :message => "Invalid tag format." }

我不确定我的问题是在于正则表达式还是验证方法本身。感谢任何帮助。

共有1个答案

海信鸥
2023-03-14

您忘记使用^(字符串的开头)和$字符串的结尾)

所以应该是

/^([a-z]+)(,\s*[a-z]+)*$/i

如果没有^,它将匹配字符串之间的任何位置。。使用^,$可以使其完全匹配

 类似资料:
  • 我需要使用regex验证逗号分隔的字符串,但我有两个问题。 我的示例输入如下, 我编写了以下Regex来验证输入 第一个问题是逗号之间的空格显示为有效字符串时。 我需要避免,我该怎么做? 我的第二个问题是,我还需要从字符串中删除额外的空间。两个删除我需要的额外空间功能。(这与上述正则表达式无关) 我需要以下输出, 更新: 对于第二个问题,我编写了以下代码, 但它不能正确删除空格,我需要这个输出

  • 我想将一个长数组值转换为一个特定格式的字符串。 例如,将longArray={0,1,2,3}转换为字符串0.1.2.3 我可以执行arrays.ToString(longArray),它将返回[0,1,2,3]。 现在必须将字符串[0,1,2,3]转换为0.1.2.3

  • 我有这个用逗号分隔的多个单词的正则表达式: 单词的数量应该限制在正好四个,我尝试了以下方法,但这没有完成工作: 有效输入示例: 无效输入示例:

  • 我是RegEx的新手,正在尝试设计一个与以下字符串匹配的RegEx: 模式1由逗号和空格分隔:。。。(重复) 模式2仅由空格分隔:。。。(重复) 模式3仅用逗号分隔:。。。(重复) 这是我的概念:但它似乎是错误的。 #我想验证整个字符串,并使用javascript #重复更改以重复更合适。 提前谢谢你!

  • 我使用以下正则表达式来验证单个电子邮件地址。如何使此正则表达式接受以逗号分隔的电子邮件地址列表? 我使用razor视图将正则表达式放置在输入标记中:

  • 我试图验证一个逗号分隔的数字列表,其中数字可以是1到3位,可以以0开头,但不能是0(0、00或000)。我正在使用以下内容,但当我测试“44222555”时,我发现无效: 我认为90在这里也是无效的,但应该是有效的