相关疑难解决方法(0)

308
推荐指数
8
解决办法
42万
查看次数

正则表达式替换Windows在文件名中不接受的字符

我正在尝试构建一个正则表达式,它将检测Windows不接受的任何字符作为文件名的一部分(这些对于其他操作系统是否相同?我不知道,说实话).

这些符号是:

 \ / : * ? "  | 

无论如何,这就是我所拥有的: [\\/:*?\"<>|]

来自http://gskinner.com/RegExr/的测试人员表明这是有效的.对于字符串Allo*ha,*符号亮起,表示已找到它.Allo**ha但是,我应该进入,只有第一个*会亮起来.所以我想我需要修改这个正则表达式以找到所提到的字符的所有外观,但我不确定.

你看,在Java中,我很幸运能够拥有String.replaceAll函数(String regex,String replacement).描述说:

将给定替换的给定正则表达式匹配的此字符串的每个子字符串替换.

换句话说,即使正则表达式只找到第一个然后停止搜索,这个函数仍然会找到它们.

例如: String.replaceAll("[\\/:*?\"<>|]","")

但是,我不觉得我可以冒这个险.那么有谁知道如何扩展它?

java regex

34
推荐指数
3
解决办法
4万
查看次数

使用正则表达式匹配utf-8编码中的任何中文字符

例如,我想匹配组成的字符串mn中国的字符,然后我可以使用:

[single Chinese character regular expression]{m,n}
Run Code Online (Sandbox Code Playgroud)

是否存在单个汉字的正则表达式,可能是存在的任何汉字?

regex unicode non-english flex-lexer

26
推荐指数
3
解决办法
4万
查看次数

如何创建安全的JEXL(脚本)沙箱?

我正在为JEXL脚本创建一个沙箱来执行,以便恶意用户无法访问我们允许他们访问的变量之外的数据,也无法在服务器上执行DOS攻击.我想把这个记录给任何其他人也这样做,并且也让其他人对这种方法有所了解.

以下是我所知道的需要解决的事项列表:

  1. 仅允许使用白名单中的"新"实例化类.
  2. 不允许在任何类上访问getClass方法,因为可以调用forName并可以访问任何类.
  3. 限制对文件等资源的访问.
  4. 允许表达式只执行一定的时间,以便我们可以限制它消耗的资源量.

这不适用于JEXL,但可能适用于您使用的脚本语言:

  1. 不允许对象具有自定义finalize方法,因为finalize方法是从终结器线程调用的,并且将使用原始的AccessControlContext而不是用于创建对象并在其中执行代码的AccessControlContext执行.

java jexl

6
推荐指数
1
解决办法
2214
查看次数