我在这里查看了多个示例,它们都部分有效,但并非全部有效。
我正在尝试创建一个正则表达式来替换基于变量的字符串中的文本。我让替换工作,但仅在第一次搜索时。等等
目标是替换: 文本:{1} 来自用户 1 的文本。
{2} 来自用户 2 的文本。
{1} 来自用户 1的文本。
- 如果是 QueryString。我需要替换 {} 之间的文本。
如果 QueryString = a user # 例如 1 则显示名称,否则显示“用户无”:
响应:文本:来自用户 1 的 NAME1 文本。
用户无 来自用户 2
的文本。来自用户 1 的 NAME1 文本。
- 如果是 QueryString。
----------------------------------
好的 - 我终于有了文件:
<%
Dim StrX, CallMe, varID, varFirmID, varBKID
CallMe = "0"
CallMe = Request.QueryString("x")
StrX = "Memo Tracking:<br />"
StrX = StrX & "{1} Test Text 1<br/ >{2} Test Text 2<br/ >{1} Test Text 1<br/ >{2} Test Text 2<br/ >" 'Data - will replace with Recordset Data later - eventually I will also add [] for two sets
varFirmID = "0"
varBKID = "0"
Set re = new RegExp
re.IgnoreCase = true
re.Global = true
re.Pattern = "\{(.*)\}" 'find {} part
set matches = re.Execute(StrX)
'finds Matches of Firms --------------------------------
If matches.Count > 0 Then
For Each Match in Matches
varFirmID = matches.item(0).submatches(0)
If Callme = varFirmID Then
StrX =(Replace(StrX,matches.item(0).submatches(0),"Replaced Name:"))
End If
If Callme <> varFirmID Then
StrX =(Replace(StrX,matches.item(0).submatches(0),"NO NAME:"))
End If
Response.Write Strx
'End loop if Match --------------------------------
Next
End If
%>
我不断得到部分结果。我有一种感觉,我需要在 for 代码之后添加一个“do while 循环”。
目标是... querystring(x)=1 结果:
备忘录跟踪:
已替换 Name1:测试文本 1
NO NAME:测试文本 2
已替换 Name1:测试文本 1
NO NAME:测试文本 2
目标是... querystring(x)=2 结果:
备忘录跟踪:
NO NAME:测试文本 1
被替换 Name2:测试文本 2
NO NAME:测试文本 1
被替换 Name2:测试文本 2
(我将使用 varFirmID 作为键在循环中运行记录集 - 所以我可能需要建议在哪里插入它。)非常感谢任何帮助!