regex - 正则表达式查找某些字符之间的匹配并包含特定字符
问题描述
所以我在下面有这段文字:
#nama:sulaiman haqa#alamat:kepanjen#kelamain:L#hobi:tidur#
我需要在:
和之间找到#
包含特定关键字的文本。例子:
Search keyword: haq
result: sulaiman haqa
在上面的例子中,字符串sulaiman haqa
满足要求:它在 and 之间:
,#
并且它有haq
关键字。
我使用这个正则表达式来查找 and 之间的单词:
,#
但我不知道如何放置 contains 条件。
(?<=\:).*?(?=\#)
请帮忙。
解决方案
你可以使用这个正则表达式:
(?<=:)[^#]*haq[^#]*(?=#)
正则表达式详细信息:
(?<=:)
: Lookbehind 断言前一个字符是:
[^#]*
: 匹配 0 个或多个不是#
haq
: 匹配文本haq
[^#]*
: 匹配 0 个或多个不是#
(?=#)
: 向前断言下一个字符是#
推荐阅读
- angular - 使用 *ngFor 从 ng-container 只向下切换一个 div
- java - 通过 Jtds 连接到 Sql Server Local Db
- xslt - 使用 DocBook/XLST-FO 生成带有章节编号的页面引文
- r - 如何将原子向量转换为可以在 R 中使用“$”符号的递归向量?
- sql - Oracle SQL 将多行聚合为单行
- java - 简单地调用 parallelStream 是否并行运行任务?
- java - 可选的
映射函数返回空 - php - 当商店用户在 Sylius 进行电子邮件确认时如何收听事件?
- python - Python - 从外部函数更新窗口类中的标签文本
- javascript - 无法在“窗口”GoogleTagManager 上执行“postMessage”