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

RegEx例如三个逗号分隔的单词

吴松
2023-03-14

我们正在对CITY、ST、ZIP形式的邮政编码进行丢失验证。这些可以跨越国家,因此以下所有内容都是有效的:

>

  • 宾夕法尼亚州匹兹堡,15020

    安大略省汉密尔顿市L8E 4B3

    我想验证的是,我们有三个逗号分隔的单词(空格可以)。所有这些都是有效的:

    • foo、bar、baz

    然而,这些将是无效的,因为它们没有两个逗号和三个单词:

    • foo, bar
    • 嘘,酒吧,巴兹,砰
    • foo,酒吧,
    • foo, bar, baz,
    ^[\w],[\w],[\w]$
    
    ^[a-zA-Z0-9_.-]*,[a-zA-Z0-9_.-]*,[a-zA-Z0-9_.-]*$  (Doesnt allow sapces)
    

    还有一点很奇怪,yall通常允许regex中使用空格,还是更喜欢应用程序先过滤空格,然后应用regex?我们两者都可以。

  • 共有2个答案

    石正奇
    2023-03-14

    试试看?,\W?\w*\w?,\W?(\w |){1,}

    (我通过你的例子进行了测试)

    寇开畅
    2023-03-14

    您尝试的模式可以写为“^w”、“^w”、“\w”、“\w”$,并将单个单词字符与中间的逗号匹配3次。

    模式^[a-zA-Z0-9.-]*,[a-zA-Z0-9.-]*,[a-zA-Z0-9.-]*$匹配3次,重复0次或更多次字符类中列出的任何字符/范围,中间使用逗号。

    由于量词*为0或更多次,它也可能匹配,,

    如果单词chars应在所有3种情况下出现,并且开头和结尾不能有空格:

    ^\w+(?:\s*,\s*\w+){2}$
    
    • <代码>^字符串开头
    • <代码>\w匹配1个单词字符
    • <代码>(?:\s*,\s*\w){2}重复2次,在可选的whitspace字符和1个单词字符之间匹配逗号
    • <代码>$字符串结束

    Regex演示

    请注意,也可以匹配换行符。如果您只想匹配空格,并且字符串也可以以空格开头和结尾,那么您可以使用注释中@anubhava的模式。

     类似资料:
    • 我试图验证数字1-8的逗号分隔列表。

    • 我如何修改我的regex来为那些以“”或“,”开头,以“”或“,”结尾的字符串返回false

    • 我试图验证一个逗号分隔的数字列表1-31唯一(不重复)。 20、15、3 我尝试但是它接受重复的数字

    • 作为前言,我意识到还有其他关于逗号分隔数字的正则表达式的主题,但当我试图使用这些解决方案时,它们都不起作用。

    • 我发现下面的regex可以验证多个电子邮件地址(逗号分隔)

    • 问题内容: 我正在编写导出功能,我需要将联系人导出到Excel,并且遇到了技术难题-也许我的SQL技能的差距更接近事实了。;) 这是场景:我在数据库中有一堆联系人。每个联系人可以具有许多不同的角色,例如,一个联系人可以是C#开发人员和DBA,也可以是DBA和IT经理。它们分为三个表,如下所示: 不太难遵循。有一组联系人和一组角色。这些由相应ID上的ContactRole表连接。 导出联系人时,我需