Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 用正则表达式函数替换特殊字符时出错_Regex_Vbscript - Fatal编程技术网

Regex 用正则表达式函数替换特殊字符时出错

Regex 用正则表达式函数替换特殊字符时出错,regex,vbscript,Regex,Vbscript,我试图替换字符串中的特殊字符和空格。我在网上发现一个正则表达式函数很方便,但我似乎无法让它工作 当我尝试此操作时,regex函数抛出一个错误“预期的指令结束”: 尝试此操作时,字符串未更改,但正则表达式函数确实通过: Set re = New RegExp re.Pattern = "[^A-Za-z0-9]" param = re.Replace("te !,;stDD ", "") 'string doesn't change on result Set re = New RegExp

我试图替换字符串中的特殊字符和空格。我在网上发现一个正则表达式函数很方便,但我似乎无法让它工作

当我尝试此操作时,regex函数抛出一个错误“预期的指令结束”:

尝试此操作时,字符串未更改,但正则表达式函数确实通过:

Set re = New RegExp
re.Pattern = "[^A-Za-z0-9]"
param = re.Replace("te  !,;stDD ", "")  'string doesn't change on result
Set re = New RegExp
re.Pattern = "[^A-Za-z0-9]"
param = re.Replace("te  !,;stDD ", "")   'string doesn't change on result
当我尝试此操作时,regex函数抛出一个错误“预期的指令结束”:

错误是由解析器而不是regex方法引发的。在VBScript中,不能在同一步骤中定义变量并为其赋值。必须将定义和赋值分开(如果需要显式定义)

您可以使用冒号将这两条语句分隔成一行,不过:

Dim param : param = Regex.Replace("te  !,;stDD ", "[^A-Za-z0-9]", "")
但是请注意,在VBScript中没有带有静态
Replace()
方法的
Regex
类,因此您仍然会从
Regex.Replace()
中得到错误

您必须像在第二个代码段中那样实例化一个对象,并使用该对象的
Replace()
方法

尝试此操作时,字符串未更改,但正则表达式函数确实通过:

Set re = New RegExp
re.Pattern = "[^A-Za-z0-9]"
param = re.Replace("te  !,;stDD ", "")  'string doesn't change on result
Set re = New RegExp
re.Pattern = "[^A-Za-z0-9]"
param = re.Replace("te  !,;stDD ", "")   'string doesn't change on result
但是字符串确实发生了变化。如果仔细查看输入和输出,您将看到:

"te !,;stDD " ← input string "te !,;stDD " ← output string 当我尝试此操作时,regex函数抛出一个错误“预期的指令结束”:

错误是由解析器而不是regex方法引发的。在VBScript中,不能在同一步骤中定义变量并为其赋值。必须将定义和赋值分开(如果需要显式定义)

您可以使用冒号将这两条语句分隔成一行,不过:

Dim param : param = Regex.Replace("te  !,;stDD ", "[^A-Za-z0-9]", "")
但是请注意,在VBScript中没有带有静态
Replace()
方法的
Regex
类,因此您仍然会从
Regex.Replace()
中得到错误

您必须像在第二个代码段中那样实例化一个对象,并使用该对象的
Replace()
方法

尝试此操作时,字符串未更改,但正则表达式函数确实通过:

Set re = New RegExp
re.Pattern = "[^A-Za-z0-9]"
param = re.Replace("te  !,;stDD ", "")  'string doesn't change on result
Set re = New RegExp
re.Pattern = "[^A-Za-z0-9]"
param = re.Replace("te  !,;stDD ", "")   'string doesn't change on result
但是字符串确实发生了变化。如果仔细查看输入和输出,您将看到:

"te !,;stDD " ← input string "te !,;stDD " ← output string
RE.Global=Truethis修复了它,thnx!RE.Global=Truethis修复了它,thnx!感谢您的广泛解释和解决方案!感谢您的广泛解释和解决方案!