首页 > 解决方案 > 如何创建正则表达式函数来选择提取查询?

问题描述

我正在尝试从字符串中提取查询,我尝试编写自己的函数,但它并不完全符合我的需求。我需要的是:

www.website.com/8056432988456?id=5, 我需要8056432988456, 有或没有/ie 前面的 a ?

这是我为它制作的正则表达式:(?<=\/)(.*?)(?=\?)|(?<=\?)

有人可以帮我吗?

标签: regexvalidation

解决方案


您可以使用

(?<=\/)\d+(?=(?:\/?\?.*)?$)

请参阅正则表达式演示

详情

  • (?<=\/)/-左边必须有一个
  • \d+- 一位或多位数字
  • (?=(?:\/?\?.*)?$)- 在右边,必须有一个可选的出现:
    • (?:\/?\?.*)?- 一个可选的/?然后是任何零个或多个字符,而不是尽可能多的换行符
    • $- 字符串结束。

推荐阅读