【问题标题】:How do I find more than one synbol using regex?如何使用正则表达式找到多个 synbol?
【发布时间】:2018-04-20 09:33:01
【问题描述】:

我有一串文本和数字,从所有意图和目的来看,它们看起来就像一长串随机文本。

我需要检测多个 + 或多个 - 彼此相邻或分散在整个字符串中。

所以,例如我需要检测这些:

abc+abc+abc-abc-

abc++abc--

abc 可以是数字或字符。文本可以包含 0 或 1 + 以及 0 或 1 - 以任何顺序、开头或任何地方。

有人可以协助确定这些正则表达式(vba 兼容)吗?

非常感谢

【问题讨论】:

  • 根据您的描述,整个文本将匹配。您能否更准确地确定比赛的开始和结束位置?
  • “零或一+和零或一-”似乎与您的第二个示例或前面的描述“多个+或多个-彼此相邻或分散”不匹配?也不清楚你所说的“检测”是什么意思,以及为什么 Instr() 在这里不够用。
  • 寻找这个? [a-z\d+-]+
  • 那么,你能提供任何负面的测试用例吗?
  • 我认为我需要重新审视这一点 - 在汇总信息以回应这篇文章的同时,我相信可能还有更多内容,所以我真的认为我需要进一步考虑这个问题以尝试和合理化选项并可能添加更多,因为这个问题只是整个问题的一小部分:(

标签: regex vba


【解决方案1】:

您不需要使用单个正则表达式。使用其他方法会更清晰、更直接:删除[^+-] 的匹配项以过滤掉不需要的字符,然后使用([+-])\1 进行最终验证。

【讨论】:

    猜你喜欢
    • 2023-01-28
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 2015-06-01
    • 1970-01-01
    相关资源
    最近更新 更多