求教php或者正則表達式的高手,正則表達式PHP

本文目錄一覽:

求教php正則高手。php正則獲取html內容中的所有img路徑及名稱,替換img的路徑

正則表達式:(?=img src=\”)(/.+/)(.+?\.(gif|jpg|png))(?=\”)

分別取第0和第2捕獲組的數據,就是你要的獲取/abc/efg/qwe/1.gif和獲取1.gif的數據

替換你可以用上面的正則表達式:(?=img src=\”)(/.+/)(.+?\.(gif|jpg|png))(?=\”)

替換成:style/images/$2

我給你一個用Java實現的上述正則表達式的例子.

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class CC {

 public static void main(String[] args) {

  String s=”img src=\”/abc/efg/qwe/1.gif\””;

  String regex=”(?=img src=\”)(/.+/)(.+?\\.(gif|jpg|png))(?=\”)”;

  Pattern p=Pattern.compile(regex);

  Matcher m=p.matcher(s);

  while(m.find()){

   System.out.println(m.group());

   System.out.println(m.group(2));

  }

  System.out.println(s.replaceAll(“(?=img src=\”)(/.+/)(.+?\\.(gif|jpg|png))(?=\”)”, “style/images/$2”));

 }

}

運行結果:

/abc/efg/qwe/1.gif

1.gif

img src=”style/images/1.gif”

求教php或者正則表達式的高手, preg_replace(“/([^()]*/)”, “”, $address); 這個正則表達式語法錯在哪裡

有兩個地方錯的,不知道你要這個表達式做什麼,幫你改了三份,你看下。

preg_replace(“/\([^()]*/”, “”, $address);

preg_replace(“/\([^()]*\)/”, “”, $address);

preg_replace(“/([^()]*)/”, “”, $address);

表達式字符串需要使用 / 來表明界限,你的表達式在右界線符右邊有一個右圓括號。

表達式內部的圓括號是用來為表達式分組的,而你的表達式內只有一個左括號,無法配對。

PHP正則表達式高手來啊

你好,我雖然沒學過PHP,但是為了幫助你(還有你的100分)也稍微看了一下,這裡說一下我的見解..不對的還請見諒

首先我不建議樓主先獲取字符串數組再用循環一一替換,看了一下preg_replace這個方法,我自己仿寫了一個

?php

$string = “[a href=?c=12a=l=2p=22/a] [a href=?c=12a=l=2p=33/a] [a href=?c=12a=l=2p=44/a] [a href=?c=12a=l=2p=55/a] [a href=?c=12a=l=2p=66/a] [a href=?c=12a=l=2p=77/a] [a href=?c=12a=l=2p=88/a] [a href=?c=12a=l=2p=99/a] [a href=?c=12a=l=2p=1010/a] [a href=?c=12a=l=2p=2下一頁/a]”;

$pattern = “/(\?c=)(\d+)(a=l=2p=)(\d+)/g”;

$replacement = “/list/\\2-\\4.html”;

print preg_replace($pattern, $replacement, $string);

?

上面的代碼是替換,先取得字符串,再替換,再拆分,這樣可以少一步循環

下面是拆分的正則表達式,根據[]作判斷,看了樓主寫的好象有點不太明白取什麼,我這裡是取的每一個[],正則表達式為

/\[[^\]]*\]+?/g

說明一下每個符號的作用

\[ :轉義為符號”[” , \]意思相同

取[]中間的那些非”]”的內容, 最後的\]+?是非貪婪匹配,意思是取到一個符合的就停止,這樣不會把整個字符串都取了,如果樓主不想要兩端的[], 可以改成這樣

/(?=\[)[^\]]*(?=\])+?/g

不消費兩端的[]號

以上代碼我沒在PHP里運行,只在別的語言上試了下可以,見笑了~~

PS:第一段代碼中$pattern正則中的號必須要寫成” amp ;”(無空格) 百度里不讓打出來,切記!

求高手幫忙php或正則表達式

我測試了下,這個正式表達式,在微軟的環境中可以通過!

^.*\\(.*)\\$

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/279474.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-20 15:04
下一篇 2024-12-20 15:04

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python正則表達式search()和match()有什麼區別?

    search()和match()都是Python中的正則表達式函數,它們的作用都是在一個字符串中搜索匹配正則表達式的位置,但它們有着不同的使用場景和返回結果。 一、search()…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • MySQL正則表達式替換

    MySQL正則表達式替換是指通過正則表達式對MySQL中的字符串進行替換。在文本處理方面,正則表達式是一種強大的工具,可以方便快捷地進行字符串處理和匹配。在MySQL中,可以使用正…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台服務器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • 詳解 IP 正則表達式

    一、IP 地址基礎知識 在講解 IP 的正則表達式前,我們先來了解一下 IP 地址的基礎知識。IP 是 Internet Protocol 的縮寫,用於標識網絡中的設備。IP 地址…

    編程 2025-04-24

發表回復

登錄後才能評論