首页 > 解决方案 > 正则表达式 - 在最后一个 / 之后获取字符串,如果该字符串包含某些内容(用户输入)

问题描述

示例字符串:

storage/emulated/0/DCIM/Pictures/dog.jpeg (should be included)
storage/emulated/0/Vacation/Pictures/a-picture.jpg (shouldn't be included)
storage/emulated/0/Vacation/Pictures/mydog.jpg (should be included)

用户输入示例:

(用户输入不能包含 /、\n、\r、\t、\0、\f、`、?、*、\、<、>、|、"、:、%)

我需要一个正则表达式来检查最后一个字符串是否/包含用户输入。

我知道在最后一个/完成之后获取字符串

([^/]+$)

但遗憾的是,我对正则表达式一无所知,即使是我在互联网上找到的。有没有人可以帮忙?

标签: regex

解决方案


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

\S*/([^/\s]*dog\b\S*)

正则表达式演示

正则表达式详细信息:

  • \S*/: 匹配最长的匹配在最后一个之前/\S匹配任何非空白字符
  • (: 开始捕获组
    • [^/\s]*: 匹配 0 个或多个/非空格字符
    • dog\b: 匹配dog以单词边界结尾的文本
    • \S*: 匹配剩余的字符串直到结束
  • ): 捕获组

推荐阅读