首页 > 解决方案 > 正则表达式获取两个字符串之间的字符串

问题描述

任何人都请帮助获取正则表达式以获取两个字符串之间的字符串。

完整字符串:

image001.jpg (1.69 KB)SpinTel - 372464.pdf (270.90 KB)SpinTel - 372464.xlsm (113.08 KB)

预期输出:SpinTel - 372464.pdf& SpinTel - 372464.xlsm

我试过表达:

((?i)Spintel)(.*)(.pdf)

并成功获得了一个输出,

但是当我将表达式更改为

((?i)Spintel)(.*)(.xlsm)

我得到的输出为SpinTel - 372464.pdf (270.90 KB)SpinTel - 372464.xlsm. 我的预期输出是SpinTel - 372464.xlsm.

请帮忙。

提前致谢。


标签: regex

解决方案


仅获取匹配项:

\bSpinTel\b.*?\.(?:pdf|xlsm)\b
  • \bSpinTel\b在单词边界之间匹配 SpinTel 以防止部分匹配
  • .*?匹配尽可能少的字符
  • \.(?:pdf|xlsm)\b匹配点和 pfd 或 xlsm 后跟单词边界

查看正则表达式演示

如果后面应该有括号,您可以为 SpinTel 部分使用捕获组,并匹配其后的括号。

(\bSpinTel\b.*?\.(?:pdf|xlsm)\s+)\([^()]+\)

查看另一个正则表达式演示


推荐阅读