正则表达式 - 删除部分网址路径

时间:2017-09-12 14:34:26

标签: javascript regex

我在Regex上没用,我想删除一些并不总是一致的URL部分。

网址可能是:

  

www.test.com / en / restOfPath

     

     

www.test.com / en / en_gb / restOfPath

然后,根据国家/地区的值,可能会更改为:

  

www.test.com / es / restOfPath

     

     

www.test.com / es / es_es / restOfPath

因此我总是希望删除粗体部分,这样我就可以分割剩余的路径,创建一个与语言/位置无关的逻辑命名。

我这样做是为了构建数据层,直到客户端在启动新网站时能够正确实现它。我已经设法构建了一个if else语句作为一种解决方法,它有点笨重,但想要一个更清洁的解决方案。

2 个答案:

答案 0 :(得分:1)

我相信这就是你所追求的:

\/.*(?=\/.*?)

https://regex101.com/r/OZIseI/4

它使用积极的预测来排除匹配中的最后/

enter image description here

答案 1 :(得分:0)

可能这会对你有所帮助

void setup() {
  pinMode(Relay1, OUTPUT);
  pinMode(Relay2, OUTPUT);
  pinMode(D0, INPUT);
  pinMode(D1, INPUT);
  pinMode(D2, INPUT);
  pinMode(D3, INPUT);

  digitalWrite(Relay1, HIGH);
  digitalWrite(Relay2, HIGH);
}

void loop() {
  byte DTMF_data = 0x00;
  DTMF_data = (digitalRead(D3) << 3) |  (digitalRead(D2) << 2) | (digitalRead(D1) << 1) | (digitalRead(D0) << 0);

  switch(DTMF_data) // Cases based on previous `if` conditions
  {
    case 1: // 0 0 0 1
      digitalWrite(Relay1, HIGH);
      delay(200);
      break;
    case 2: // 0 0 1 0
      digitalWrite(Relay1, LOW);
      delay(200);
      break;
    case 4: // 0 1 0 0
      digitalWrite(Relay2, HIGH);
      delay(200);
      break;
    case 5: // 0 1 0 1
      digitalWrite(Relay2, LOW);
      delay(200);
      break;
  }
}

此示例即将在此之后找到包含两个alpha的第一个LyncClient.GetClient();,并且可能是另一个(?:\/([a-z]{2})(?:\/([a-z]{2}_[A-Z]{2}))?) 构造/

我在regex101

为您提供了代码示例