我想将传入的用户字符串转换为正则表达式,并且传入的字符串可能包含空格。有没有办法忽略字符串中的所有空格?
答案 0 :(得分:1)
@Zach L和@smas回答了你的真实问题
我想将传入的用户字符串转换为正则表达式...
我想警告你要小心谨慎。编写一个病毒正则表达式很容易,因为某些输入字符串会消耗大量的CPU时间。如果您允许用户自己输入任意正则表达式,他们可能会意外地或意图重载您的服务而进入病态正则表达式...
答案 1 :(得分:0)
您可能有兴趣在Pattern
课程中使用COMMENTS标志,其中包含:
允许空白和评论 图案。在这种模式下,空格是 忽略,嵌入评论 从#开始被忽略,直到 一行结束。
您可以找到有关使用带有here模式的标记的更多信息。
另一种方法是在使用String.replace或String.replaceAll编译正则表达式之前删除空格。
答案 2 :(得分:0)
也许这样的事情对你有好处:
Pattern p = Pattern.compile("...", Pattern.COMMENTS)
Pattern.COMMENTS意味着:
允许空白和评论 图案。在这种模式下,空格是 忽略,嵌入评论 从#开始被忽略,直到 一行结束。
答案 3 :(得分:0)
使用正则表达式替换(请参阅http://forums.devx.com/showthread.php?t=145832)删除空格。如果要将用户输入转换为正则表达式,请务必小心转义(就像SQL一样,用户可以放入会使程序行为异常的元字符);您可以获得有关正确转义here的信息。