簡體   English   中英

需要一個PHP preg_replace正則表達式

[英]in need of a php preg_replace regex

我正在編寫一個腳本,該腳本需要將與產品ID數組相關的圖像下載到外部網站。 這是可能的產品ID組合。

  • ABC1234AB
  • ABC1234AB-CD
  • ABC1234AB-CDE
  • ABC1234ABC

我需要能夠將它們轉換為制造商網站上的等效URL(以相同順序):

  • abc1234_ab
  • abc1234_ab_cd
  • abc1234_ab_cde
  • abc1234_abc

我正在尋找可與preg_replace配合使用的正則表達式。 提前致謝!

$output = strtolower(preg_replace('~\d\K(?=[A-Z])|-~', '_', $input));

\\K從匹配結果中刪除左邊匹配的內容,因此,字母前的數字不是匹配的一部分,因此不會被替換。

(?=...)是一個前瞻性斷言 ,它檢查是否跟隨字母,它也不是匹配結果的一部分,也不會被替換。

我是一個正則表達式的菜鳥,但我會試一試。

輸入: /([AZ]+)\\d+([AZ]+)\\-([AZ]+)/

AZ匹配大寫字母字符\\ d匹配數字

“ +”用於重復

在替換回調中,在匹配項上使用strtolower並根據需要加入它們:P

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM