2013-03-15 61 views
0

我不擅長正則表達式,所以我需要一些幫助。正則表達式,發現模式之前的10個字符

我試圖找到如何獲得例如10個字符之前的模式和10個字符之後。 像:

dskjgh kdsfhgl:ks;dhfl\kgh.sldfgdfgsd<pattern1.fso[wpe;x,/c,zasdfsdg 


(10 chars before pattern1) var1 = "ldfgdfgsd<" 
(10 chars after pattern1) var2 = ".fso[wpe;x" 

回答

2
$str = "dskjgh kdsfhgl:ks;dhfl\\kgh.sldfgdfgsd<pattern1.fso[wpe;x,/c,zasdfsd"; 
preg_match("/(.{10})(pattern1)(.{10})/", $str, $matches); 

$var1 = $matches[1]; 
echo $var1; 

$var2 = $matches[3]; 
echo $var2; 
+0

謝謝,這就是我需要的! – user1844923 2013-03-15 08:32:26

2

這應該做的伎倆:

var str = "lasdjfl askjdfl askjdf kljlajpattern1lakjsdflajsdlfkj"; 
var match = str.match(/(.{10})pattern1(.{10})/i); 
var text1 = match[1]; 
var text2 = match[2]; 
alert(text1); 
alert(text2); 

結果:

text1 = jdf kljlaj 

text2 = lakjsdflaj 
+1

感謝,我覺得這是JavaScript,我需要的PHP,所以我會只用模式,謝謝! – user1844923 2013-03-15 08:13:22

+0

哦天啊,我的腦子上有JS ...對不起... – 2013-03-15 08:14:56

相關問題