【问题标题】:Regex URI portion: Remove hyphens正则表达式 URI 部分:删除连字符
【发布时间】:2014-10-16 13:15:29
【问题描述】:

我必须在第二部分拆分 URI:

/directory/this-part/blah

我面临的问题是我有 2 个 URI,它们在逻辑上必须是一个

/directory/house-&-home/blah
/directory/house-%26-home/blah

返回如下:

house-&-home and house-%26-home

从逻辑上讲,我需要一个正则表达式来检索第二部分,但删除连字符之间的所有内容。

到目前为止,我有这个:

 /[^(/;\?)]*/([^(/;\?)]*).*

【问题讨论】:

  • 你在运行哪种语言?
  • 请包含所需输出的样本(第二个端口是指路径中的第二个组件?)
  • 这是一款自定义软件。上面的正则表达式吐出house-&-home。我猜是Java,但我真的不知道。 :(
  • @guido 请阅读原帖。我希望检索house-&-home 部分

标签: regex uri


【解决方案1】:

(?<=directory\/)(.+?)(?=\/)

这能解决您的问题吗?这返回:

house-&-homehouse-%26-home

这是一个demo

如果你想得到结果:

house--home

那么你应该使用替换方法。因为不知道你用的是什么语言,我就用java举例:

String regex = (?<=directory\/)(.+?)(?=\/);
String str = "/directory/house-&-home/blah"

Pattern.compile(regex).matcher(str).replaceAll("\&", "");

此替换方法允许您将某个模式(&amp; 符号)替换为空 ""

【讨论】:

  • 几乎.... /directory/home-&amp;-garden/this 提供 home--garden..... /directory/home-blah-garden/this 提供 home-blah-garden。 ....../directory/home-%26-garden/this 给了 home-%26-garden
  • @JoeSmith 所以唯一不同的是home-&amp;-garden?您想删除 & 吗?
  • 我需要将所有这些示例列为同一事物。即 home-gardenhomegarden 或 home--garden** 以最简单的为准:)
  • 是的,你会使用我上面提供的正则表达式,然后使用替换方法。没有正则表达式可以抓取两个特定实例,然后对其进行更改和修改。这是通过.replace() 方法完成的。
  • 嗯,好的,谢谢。该死。我无权使用脚本。我只得到一个正则表达式框。嗯。尽管如此,还是感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-21
  • 2015-10-06
  • 2022-01-09
  • 2013-06-22
  • 1970-01-01
  • 2016-05-26
  • 1970-01-01
相关资源
最近更新 更多