正则表达式 - 匹配每一行或不匹配

时间:2021-05-31 16:19:39

标签: regex google-sheets

我有这个 /([^\s](\-|\w)+\s(\d){1,2}[^\w\d\s])+/s 正则表达式来匹配这个:

Name 11
Name-with-Seperators 22
Another Name 33

我想验证输入是否遵循以下格式:名称、空格、数字、换行符

如果不匹配,则不应该匹配。但是我只能让它工作来匹配一些东西。 输入验证在 Google 表格中进行,因此我无法拆分每一行并轻松单独测试。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

如果您的目标是分别匹配每一行: /^[a-z\-]+\s\d+$/gim

它首先匹配一组带有潜在分隔符的字母,然后查找一个空格和一组数字。

  • g 修饰符是为了让正则表达式不会在第一次匹配时停止
  • i 修饰符用于不区分大小写
  • m 修饰符用于多行输入

但是,如果您的目标是将整个事物仅作为一组正确或错误进行匹配,您可以选择以下方法: /^[a-z\-]+\s\d+(\n[a-z\-]+\s\d+)*\n$/i

它假设每一行甚至最后一行都以换行符结束。它与第一行做同样的事情,但在第一行之后,它会检查 0 到无限制的行,这些行遵循与第一行相同的模式。