我正在创建动态regex
,但是我对如何转义字符有疑问,因此可以对此有所了解吗?
我正在使用具有某些后端配置的PHP,并且管理员可以从后端添加regexp
来验证无效字符,并且我在PHP上获得了此值,所以我做了
var regex = RegExp(<?php echo $regex ?>);
但是我遇到类似SyntaxError: Invalid regular expression:
的错误,我知道我需要对动态字符进行转义,但不确定如何。
编辑
我正在尝试从后端获取该值
<>{}[\]!@#$+=%^*()/;
新编辑
根据@anubhava的建议,我用preg_quote()
来转义特殊字符,但是在Regex.test上,它总是失败,这意味着即使它应该返回true,也总是会得到错误。
这是我的代码,
var invalidCharRe = new RegExp(SOME_MY_VARIABLE);
var result = invalidCharRe.test(value)
其中SOME_MY_VARIABLE
是动态特殊字符(我从preg_quote()
从PHP获得,而value
是我的文本框值
答案 0 :(得分:3)
由于您使用folderlist=["folder1","folder2","folder3","folder4"]
i=0
for i in range(4):
os.chdir(r"//Desktop/foldersforreading/folderlist[i]")
file=pd.read_table('file.txt',sep=',',header=0, index_col=None)
#do something
#move to next one
i=i+1
来回显正则表达式,因此可以利用php的preg_quote
function来预先转义所有特殊的正则表达式元字符,如下所示:
php
请注意,这里不需要调用var regex = /<?php echo preg_quote($regex, '/'); ?>/
,因为Java总是会为regex获取静态字符串。