在冒号/爆炸前匹配文本

时间:2016-01-03 21:19:22

标签: regex

我的字符串可以采用以下格式:

  • A:B:C
  • A - B - C
  • A - B:C
  • A:B - C

在所有情况下,我需要提取所有内容,直到def flatMap[A, B, C](d: \/[A, B], f: B => ValidationNel[A, C]) : ValidationNel[A, C] = d.leftMap(_.wrapNel).flatMap(f(_).disjunction).validation ,包括冒号/ hypen以及它后面的空格,因此对于示例,将是以下内容:

  • A:
  • A -
  • A -
  • A:

例如1,B可以使用

例如2,^[^:]*:\s*可以使用

例如1,2和3,^[^-]*-\s*可以使用

我希望能为我提供所有示例所需的匹配。

2 个答案:

答案 0 :(得分:6)

请注意,您可以在方括号中否定多个字符,因此只需合并您的示例1和2

^[^:-]*[:-]\s*

匹配开头没有连字符或冒号后跟冒号或者冒号和空格的任何字符,如果有的话

https://regex101.com/r/cK6hC7/1

答案 1 :(得分:0)

我会确保避免使用*以避免缺少起始字母的情况,并确保正则表达式避免两者:和 -

^([^: - ] + [ - ] \ S +)

https://regex101.com/r/sX0zO0/2