【问题标题】:match string containing specific substring ending on 4 digits regex包含以 4 位正则表达式结尾的特定子字符串的匹配字符串
【发布时间】:2018-08-26 16:31:20
【问题描述】:

我正在尝试匹配以下类型的字符串:

匹配
- 4738
- 3333

不匹配
- 0447 7474
9495 - 8485
/2848
/ 9949
- 584888

所以我做了这个正则表达式:/^(- )?(?=\d{4})$/,但这与我的目标字符串不匹配:- 8549
这是我需要分析的数据:

我对正则表达式很陌生,所以欢迎所有关于如何解决这个问题的提示和建议。

提前致谢

【问题讨论】:

  • 每个结果后面是否有换行符?
  • 没有,但是对正则表达式进行了快速编辑,也许这会有所帮助!
  • 您搜索的数据来自哪里?它像数据库记录还是文件?因为您提供的用例需要有所不同:如果您想匹配 - 4738 而不是 - 0447 7474 或 9495 - 8485,那么其中必须有换行符。你能展示几个你必须查看的数据集吗?
  • 数据来自数据库。所以我给出的每个例子都将是一个单独的记录。希望这是有道理的:)
  • 好吧,让我们看看你有什么:)

标签: php regex string pcre


【解决方案1】:

如果您尝试/^-\s\d{4}$/,它应该可以解决问题;)

【讨论】:

    【解决方案2】:

    这应该可行:

    /^(- )?(\d{4})$/
    

    如果您不需要捕获任何组:

    /^(?:- )?\d{4}$/
    

    【讨论】:

      猜你喜欢
      • 2013-10-27
      • 1970-01-01
      • 2017-03-17
      • 2023-01-02
      • 2021-01-17
      • 2015-08-01
      • 2022-01-06
      相关资源
      最近更新 更多