代码之家  ›  专栏  ›  技术社区  ›  novalagung Alexander Kim

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

  •  2
  • novalagung Alexander Kim  · 技术社区  · 5 年前

    所以我有以下文字:

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

    我需要在 : # 包含特定关键字的。 例子:

    Search keyword: haq
    result: sulaiman haqa
    

    在上面的例子中,string sulaiman haqa 满足要求:介于 以下内容: # 而且它也有 haq 关键字。

    我用这个正则表达式在 以下内容: # ,但我不知道如何放置包含条件。

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

    请帮忙。

    3 回复  |  直到 5 年前
        1
  •  4
  •   anubhava    5 年前

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

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

    RegEx Demo

    正则表达式详细信息:

    • (?<=:) :lookbehind断言前一个字符是 :
    • [^#]* :匹配0个或多个非 #
    • haq :匹配文本 哈克
    • [^]]* :匹配0个或多个非 #
    • (?=#) :lookahead断言下一个字符是 #
        2
  •  3
  •   Brett Zamir    5 年前

    就这样吧:

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

    你需要使用你的语言的功能来转义“haq”,尽管它包含任何特殊的字符。

        3
  •  0
  •   Emma    5 年前

    你的表达很好,我猜你可能只想添加一个捕获组:

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

    这样就可以捕捉到你想要的价值观,这很可能会解决问题。

    Demo