我正在使用正则表达式,我的任务是在一个充满随机单词的文本文件中找到同时包含子字符串"a"和"ha"的单词.不幸的是,我无法做到这一点,因为我编写的正则表达式一直在匹配像hat这样的词,它有子字符串ha,但没有单独的a.

这是我的正则表达式\b(?=\w*a)\w*(?=\w*ha)\w*,它匹配hathail这样的单词,而它应该只匹配两个子字符串的单词,例如haahata.我怎么才能解决这个问题呢?

PS.子字符串的顺序应该无关紧要,匹配只是一般的练习,也就是说,没有特定的编程语言.

推荐答案

您可以使用下面的正则表达式:

\b(?:\w*ha\w*a|\w*a\w*ha)\w*

哪一项匹配:

  • \b:单词边界
  • (?:\w*ha\w*a|\w*a\w*ha) : either
    • \w*:一定数量的单词字符
    • ha:原义ha
    • \w*:一定数量的单词字符
    • a:原义aor
    • \w*:一定数量的单词字符
    • a:原义a
    • \w*:一定数量的单词字符
    • ha:原义ha
  • \w*:一定数量的单词字符

regex101上的Regex演示

Php相关问答推荐

PHP在将数组子集赋给变量时是否复制数组子集?

如何在数据库中添加注册表单中的动态新行?

PHP cUrl扩展与v8.2.12更新损坏

从WooCommerce Checkout Country Select2下拉列表中重新排序国家/地区

有什么方法可以阻止WordPress主题升级通知吗?

如何显示每个分类的当前术语的帖子中包含的前20个标签,不包括标签分类

当主页和帖子的缩略图相同时,如何减少主页和帖子的缩略图

在WooCommerce管理中 for each 运输方法设置添加自定义字段

使用CODIGNITER3中的OR和AND子句进行查询

即使在WooCommerce购物车中添加了两次产品,也要将所有项目设置为空白行

允许在WooCommerce管理订单列表中使用计费邮箱进行搜索

如何用十进制和字母数字减go 和添加 id

Mac 上安装 php 时出现 Homebrew 错误

使用 Laravel 和 Vue 进行图像表单验证

Laravel Eloquent:复杂的多对多关系以及缺失关系的默认值

Xdebug 不会在断点处停止

如何使用 WhatsApp Cloud API 向 WhatsApp 发送消息,而无需在发送消息之前注册收件人号码?

在 WordPress 中使用 $wpdb 运行 MySQL 事务是否安全?

按前 3 列对二维数组中的行数据进行分组,然后用逗号连接每组中的其余列

将加密/解密函数从 PHP 转换为 NodeJS