regex - 正则表达式查找某些字符之间的匹配并包含特定字符

标签 regex

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

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

我需要在:#之间找到包含某些关键字的文本。
例:
Search keyword: haq
result: sulaiman haqa

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

我使用此正则表达式在:#之间找到单词,但我不知道如何放置contains条件。
(?<=\:).*?(?=\#)

请帮忙。

最佳答案

您可以使用此正则表达式:

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

RegEx Demo

RegEx详细信息:
  • (?<=:):在后面断言前一个字符是:
  • [^#]*:匹配非#的任何字符中的0个或多个
  • haq:匹配文本haq
  • [^#]*:匹配非#的任何字符中的0个或多个
  • (?=#):先行断言下一个字符是#
  • 关于regex - 正则表达式查找某些字符之间的匹配并包含特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56829896/

    相关文章:

    Javascript:在替换中替换

    java - 有没有办法在正则表达式(java)中使用\p{Punct},但没有 "(",")"字符?

    python - 在 Python 的一行中执行子字符串替换

    Python:用reg的输出替换所有列

    javascript - 如何在正则表达式中转义星号?

    Java:用方法结果替换 RegEx

    javascript - 正则表达式在 JavaScript 中经过测试和工作,但在 Google Sheets REGEXEXTRACT 中中断

    javascript - 正则表达式拆分数字组和非数字组在 Javascript 中不起作用

    java - 正则表达式用图像标签替换特定字符串?

    java - 正则表达式从简单的 JSON 对象中提取值