2012-06-26 148 views
0

任何想法??powershell和正則表達式

我有這個代碼在數百頁我需要從所有這些頁面中刪除它,但由於「var s」everypage是不同的4位數字我不能只是做一個查找和替換沒有什麼 。 如何在這四位數字上使用正則表達式創建powershell命令。

<script language="javascript" type="text/javascript"> 
var d = '<%=joindomain%>'; 
var s = '9244'; 
var a = '<%=Request.QueryString("aff") %>'; 
var c = '<%=Request.QueryString("camp") %>'; 
var r = '<%=referer %>'; 
</script> 

謝謝 波多黎各

+2

你的意思是你需要從每個文件中刪除這7行?或者你的意思是,你只需要刪除一個4位數的行? – David

+0

我需要從每個文件中刪除這7行。 – Unreal1969

+1

即使它是一個不同的4位數字,你實際上可以找到/替換。在Powershell正則表達式中,'\ d'表示任何數字,所以'\ d \ d \ d \ d'將匹配任何4位數字。 – SpellingD

回答

0

不知道你如何一般在這裏......下面的代碼可以做的比你多問,如果是這樣的話 - 只需添加更多的東西來消除歧義的。無論如何,它做的工作對我來說...;)

@' 
foo 
<script language="javascript" type="text/javascript"> 
var d = '<%=joindomain%>'; 
var s = '9244'; 
var a = '<%=Request.QueryString("aff") %>'; 
var c = '<%=Request.QueryString("camp") %>'; 
var r = '<%=referer %>'; 
</script> 
bar 
'@ -replace '<script language[\s\S]*?var s = ''\d{4}''[\s\S]*?</script>' 

它會刪除之間「任何一段文字」包含字符串「變種S =‘####’」(4位)。請注意,我必須通過正則表達式和單引號才能使其正常工作。在某些時候,你可能會考慮[正則表達式] :: Escape方法,如果你想要非常具體...