1
我有一些最初用PHP編寫的正則表達式代碼,我需要將它移植到ASP。原來這裏是PHP代碼:移植正則代碼
$contents = file_get_contents("http://localhost/source.txt");
$title = 'My Title';
preg_match("/<b>$title.*?(<p.*?)<\/td/smi",$contents,$matches);
print_r($matches);
這裏是ASP移植版本:
contents = File_Get_Contents("http://localhost/source.txt")
response.write contents
title = "My Title"
regex = "<b>" + title + ".*?(<p.*?)</td"
Set objRE2 = New RegExp
With objRE2
.Pattern = regex
.IgnoreCase = True
.Global = True
.MultiLine = True
End With
Set myMatches = objRE2.Execute(contents)
'myMatches - Count is 0
Function File_Get_Contents(strFile)
' Remote File
If Left(strFile, 7) = "http://" Or Left(strFile, 8) = "https://" Then
'Set objXML = Server.CreateObject("Microsoft.XMLHTTP")
' Use this line if above errors
Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXML.Open "GET", strFile, False
objXML.Send()
File_Get_Contents = objXML.ResponseText
Set objXML = Nothing
' Local File
Else
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFile, 1)
File_Get_Contents = objFile.ReadAll()
Set objFile = Nothing
Set objFSO = Nothing
End If
End Function
的Source.txt:
<td>
<b>My Title</b><br>
<p>My Content</p></td>
如果我寫了兩個實際的正則表達式模式語言,除了在PHP版本中轉義正斜槓字符之外,它是一樣的。 (我也測試過添加這個,具有相同的效果)。
在正則表達式中,我是否存在一些細微的差異,或者是我看不到的一些愚蠢的錯誤?
謝謝。
感謝您的支持。沒有要求你「提供完整的代碼」,你能建議更多的方法來替換asp的正則表達式嗎? – 2012-07-26 11:31:02
@AndrewHall很難不知道你想要匹配什麼*以及你不想匹配什麼*。由於正則表達式是處理HTML(和XML)的錯誤工具,我寧願建議您尋找更好的工具。 – Richard 2012-07-26 12:07:52