【问题标题】:Regular Expression (Hyphens, Underscores, and Periods)正则表达式(连字符、下划线和句点)
【发布时间】:2025-12-16 07:35:01
【问题描述】:

我需要一个能够检测到的正则表达式:

https://s-dPICS-sac323.domain.com/a12_hyJ_k87ds_x.jpg

这段代码能做到吗:

var x = /(https:\/\/[A-Za-z0-9.-]*PICS[A-Za-z0-9._\/]*\.jpg)/g;

这是否能够检测到以下方面的内容:

注意:除了 https://PICSdomain.com.jpg 之外的所有内容都是此示例的随机字母数字字符。我正在尝试检测所有其余的字符。

感谢您的帮助!

【问题讨论】:

  • 是的,它不起作用,而且我已经很久没有使用正则表达式了。我生锈了。
  • “检测”是什么意思?您是只想验证给定的 URL 是否与模式匹配,还是要提取可变部分? (另外,如果它不起作用,可能会显示接下来的几行代码,以了解您如何尝试使用它。)
  • 用更多细节编辑了原帖

标签: javascript regex


【解决方案1】:

试试这个:

/https:\/\/[a-z0-9.-]*photos[\w.\/-]*\.jpg/i

演示:http://rubular.com/r/flmf92C3T2

【讨论】:

  • 没用,但感谢您的尝试。我用更多细节编辑了原始帖子
  • 谢谢你。它没有解决问题,但 RegExp 检查器说它是有效的,我可以按照你在那里所做的。我的代码中一定有另一个我尚未找到的错误(或一组错误)。这次真是万分感谢。标记你的答案是正确的,因为它修复了这个错误。
  • 虽然在这种情况下我认为没问题,但尝试使用 Ruby 正则表达式推断 Javascript 正则表达式行为是不是有点狡猾?
  • @tchrist 我认为正则表达式和它匹配的字符串很简单,可以做到这一点。
【解决方案2】:

不要转义普通的斜线,它们不是魔法字符。

    /https:\/\/[\w.-]+PICS[\w.\/-]+\.domain\.com/[\w.\/-]+\.jpg/

【讨论】:

  • 嗯,当您像 OP 一样使用 /regex here/ 表示法定义正则表达式时,普通斜杠是魔术字符。
  • 没用,但感谢您的尝试。我用更多细节编辑了原始帖子
  • @jfriend 感谢您提供的信息。但是您是否还必须在字符类中转义斜线?
  • 我不确定它们是否必须在字符类中转义,但这似乎不太冒险,因为我不知道它是否适用于所有情况。我知道当你不逃避它们时,语法荧光笔会变得一团糟,而像 rubular.com 这样的正则表达式测试网站说你必须逃避它们。所以,为了安全,我逃离了他们。 Chrome 无需在 [] 内转义即可工作。
【解决方案3】:

/(https:\/\/[A-z0-9.-]*PICS[A-z0-9.-]*domain\.com[A-z0-9.-/_]*\.jpg)/ 将匹配“https://s-dPICS-sac323.domain.com/a12_hyJ_k87ds_x.jpg”。

/(https:\/\/[A-z0-9.-]*photos[A-z0-9/.-]*\.jpg)/ 将匹配“https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-snc3/12868_695309462154_5301742_40115272_5760577_n.jpg”和https://照片,而 .jpg 保持不变。

你还需要什么吗?在 regexpal.com 上尝试一下

【讨论】:

    最近更新 更多