搜索子字符串的正则表达式

Regular Expression to search substring

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

这样的字符串

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

其中星号表示该词可以有多种不同的结尾

一般来说,我的目标是在 clickhouse 数据库的表中找到相似的表达式。如果您提出其他方案来解决这个问题,我将不胜感激

在单词尾部和前面的“单词边界”使用任意数量的“单词”字符:

\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 到多个字母字符
  • of - 文字
  • Econom - 文字文本
  • [A-Za-z]* - 0 到多个字母字符
  • \b - 单词边界

如果您想更宽容 upper/lowercase 和空格,请使用:

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