首页 > 解决方案 > 正则表达式查找某些字符之间的匹配并包含特定字符

问题描述

所以我在下面有这段文字:

#nama:sulaiman haqa#alamat:kepanjen#kelamain:L#hobi:tidur#

我需要在:和之间找到#包含特定关键字的文本。例子:

Search keyword: haq
result: sulaiman haqa

在上面的例子中,字符串sulaiman haqa满足要求:它在 and 之间:#并且它有haq关键字。

我使用这个正则表达式来查找 and 之间的单词:#但我不知道如何放置 contains 条件。

(?<=\:).*?(?=\#)

请帮忙。

标签: regex

解决方案


你可以使用这个正则表达式:

(?<=:)[^#]*haq[^#]*(?=#)

正则表达式演示

正则表达式详细信息:

  • (?<=:): Lookbehind 断言前一个字符是:
  • [^#]*: 匹配 0 个或多个不是#
  • haq: 匹配文本haq
  • [^#]*: 匹配 0 个或多个不是#
  • (?=#): 向前断言下一个字符是#

推荐阅读