【问题标题】:regular expression comma separated or empty string正则表达式逗号分隔或空字符串
【发布时间】:2012-06-21 12:15:13
【问题描述】:

我正在尝试使用逗号分隔的字符串列表(特定形式)或空来验证字段。我不能使用拆分。

我已经设法为单个字符串设置了常规 exp。

我只想实现逗号分隔(之前和之后有空格,可能是)或有空字符串。如果它不为空,则它必须具有特定的字符串格式。此处如果输入了多个字符串,则应使用逗号。

字符串格式为

   ^([a-z_\.\-])+\@(([a-z\-])+\.)+([a-z]{2,4})+$

请帮我添加逗号分隔和整个空字符串。谢谢

【问题讨论】:

  • 您使用的是哪种语言,或者正则表达式的哪种方言?电子邮件地址在 .museum TLD 中的人不会因为您拒绝他们的电子邮件而高兴,而且随着 ICANN 变得更有创造力,这种情况只会变得更糟。
  • 不是 100% 相关的,但这是电子邮件地址的正则表达式吗?那个问题是notoriously tricky,例如,有email address.museum TLD,这些将无法通过您的验证。
  • @dbaupp:嘿,你是不是在我的肩膀上阅读:D
  • 是的,我可以像 2,7 一样更改。但我现在担心的是如果超过 1 则 comma 。如果根本没有字符串,好的。而已。这是使用 java 环境,但我在 xml 实体中指定它。
  • (@JonathanLeffler, haha​​ :D ) 你在添加逗号方面有什么尝试?例如你能写一个匹配用逗号分隔的列表的正则表达式,而不用担心空字符串吗?

标签: regex comma


【解决方案1】:

试试这个表达方式

/^$|^([a-z_\.\-])+\@(([a-z\-])+\.)+([a-z]{2,4})+(\s*,\s*([a-z_\.\-])+\@(([a-z\-])+\.)+([a-z]{2,4})+)*$/

模式是^$|^string(,string)*$

【讨论】:

    猜你喜欢
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多