首页 > 解决方案 > 正则表达式按特定规则匹配不包括数字的文本字符串

问题描述

我有一些字符串:

ALFA ROMEO 4C
BMW X7 BLACK
BMW X7 BLACK COLOUR
BMW X7
BMW
BMW X 7
BMW 7 SERIES
BMW 7SERIES
BMW 7S
BMW (X7)

我想得到:

ALFA ROMEO 4C
BMW X7 BLACK
BMW X7 BLACK COLOUR
BMW X7
BMW
BMW X
BMW
BMW 7SERIES
BMW 7S
BMW
  1. 如果数字不与字母一起,[A-Z]则图案应抢在它们之前。
  2. [^A-Z]如果字母和空格后面没有字母[A-Z],那么图案应该在它们之前抓取。

标签: regex

解决方案


有点令人费解,但这可以工作:

^[A-Z ]+?(\d[A-Z]|[A-Z]\d).*|^[A-Z ]+

你的比赛将在$0

ALFA ROMEO 4C
BMW X7 BLACK
BMW X7 BLACK COLOUR
BMW X7
BMW
BMW X
BMW
BMW 7SERIES
BMW 7S
BMW

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


推荐阅读