douxian8883 2018-05-03 06:40
浏览 18
已采纳

从字符串中提取票号

I want to extract the ticket numbers from a string that contains numbers and letters like:

String 1) Order 2555225552 Ticket Number [TICKET 201805000000012345]
String 2) Order 32234234234 Ticket Number [TICKET <span>201805000000012345</span>]
String 3) Order 5656567655665565 Ticket Number [  TICKET <span>   201805000000012345</span>   ]

I want here to get the number 201805000000012345 or any other number from input string (1, 2 or 3).


$matches = array();
preg_match('/\[TICKET(.*)([0-9]+)(.*)\]/', 'Ticket Number [TICKET <span>201805000000012345</span>]', $matches);

Output:

array:4 [
  0 => "[TICKET <span>201805000000012345</span>]"
  1 => " <span>20180500000001234"
  2 => "5"
  3 => "</span>"
]
  • 写回答

4条回答 默认 最新

  • dtmu88600 2018-05-03 06:52
    关注

    Your regex is mostly correct. You just need to add a ? to make it non-greedy.

    /\[TICKET(.*?)([0-9]+)(.*)\]/
    

    In fact, if you don't care about what comes after the numbers, you can also omit that part:

    /\[TICKET(.*?)([0-9]+)/
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条
  • ¥15 Python报错怎么解决
  • ¥15 simulink如何调用DLL文件