正则表达式截断最后 4 个字符并确保它不包含特定单词

Regex to truncate last 4 characters and make sure it doesn't contain specific words

我得到诸如“BumpCardV2Resource.getInstance.Time”或“BumpCardWebResource.getInstance.Time”或“BumpCardResource.getInstance.Time”之类的字符串。我需要一个正则表达式来只获取“BumpCardResource.getInstance”

目前,我正在使用否定前瞻来确保字符串不包含 V2 或 Web,但不确定如何截断最后 5 个字符 (.Time)。

我正在使用的正则表达式:/^(?!.*V2|.*WebResource).*$/

PS - 资源和 API 端点不断变化。它不一定只是 BumpCard 或 getInstance

您可以使用正则表达式 匹配整个字符串 捕获 从字符串开头到 [=11] 的任何文本=] 最后:

/^(?!.*V2|.*WebResource)(.*)\.Time$/

regex demo详情:

  • ^ - 字符串开头
  • (?!.*V2|.*WebResource) - 字符串
  • 中的任何地方都不允许 V2WebResource
  • (.*) - 捕获第 1 组:除换行字符外的任何零个或多个字符尽可能多
  • \.Time - .Time 字符串
  • $ - 字符串结尾。