正则表达式搜索子串

问题描述

假设我有一个Michael is studying at the Faculty of Economics at the University

这样的字符串

我需要检查给定的字符串是否包含以下表达式:Facul* of Econom*

星号暗示这个词可以有很多不同的结尾

总的来说,我的目标是在 clickhouse 数据库的表中找到相似的表达式。如果您提出解决此问题的其他选择,我将不胜感激

解决方法

使用任意数量的“word”字符作为词尾和前面的“词边界”:

\bFacul\w* of Econom\w*

也要考虑不区分大小写:

(?i)\bfacul\w* of econom\w*
,

如果您想匹配两个单词后面的任何小写字母,请使用:

\bFacul[a-z]* of Econom[a-z]*\b

如果您想匹配两个单词后面的任何可选字母,请使用:

\bFacul[A-Za-z]* of Econom[A-Za-z]*\b

说明:

  • \b - 词边界
  • Facul - 文字
  • [A-Za-z]* - 0 到多个 alpha 字符
  • of - 文字
  • Econom - 文字
  • [A-Za-z]* - 0 到多个 alpha 字符
  • \b - 词边界

如果你想对大写/小写和空格更宽容,请使用:

\b[Ff]acul[A-Za-z]* +of +[Ee]conom[A-Za-z]*\b