使用用户字符串的正则表达

时间:2011-02-20 04:06:55

标签: java

我想将传入的用户字符串转换为正则表达式,并且传入的字符串可能包含空格。有没有办法忽略字符串中的所有空格?

4 个答案:

答案 0 :(得分:1)

@Zach L和@smas回答了你的真实问题

  

我想将传入的用户字符串转换为正则表达式...

我想警告你要小心谨慎。编写一个病毒正则表达式很容易,因为某些输入字符串会消耗大量的CPU时间。如果您允许用户自己输入任意正则表达式,他们可能会意外地或意图重载您的服务而进入病态正则表达式...

答案 1 :(得分:0)

您可能有兴趣在Pattern课程中使用COMMENTS标志,其中包含:

  

允许空白和评论   图案。在这种模式下,空格是   忽略,嵌入评论   从#开始被忽略,直到   一行结束。

您可以找到有关使用带有here模式的标记的更多信息。

另一种方法是在使用String.replaceString.replaceAll编译正则表达式之前删除空格。

答案 2 :(得分:0)

也许这样的事情对你有好处:

Pattern p = Pattern.compile("...", Pattern.COMMENTS)

Pattern.COMMENTS意味着:

  

允许空白和评论   图案。在这种模式下,空格是   忽略,嵌入评论   从#开始被忽略,直到   一行结束。

答案 3 :(得分:0)

使用正则表达式替换(请参阅http://forums.devx.com/showthread.php?t=145832)删除空格。如果要将用户输入转换为正则表达式,请务必小心转义(就像SQL一样,用户可以放入会使程序行为异常的元字符);您可以获得有关正确转义here的信息。