2017-04-26 54 views
1

我在Java的代码与空格替换正则表达式:Java的正则表达式来常规

private static final String SCRUB_REGEX = "[\\<\\>\\\"\\'\\(\\)\\\\\\n\\r\\f]"; 
private static final String SCRUB_REPLACEMENT = " "; 
String trim = value.replaceAll(SCRUB_REGEX, SCRUB_REPLACEMENT).trim(); 

我试图在了SoapUI的Groovy脚本利用这一点,它似乎并没有真正修剪。 groovy不认识java正则表达式吗?

temp =testStep.getPropertyValue(sorted).replaceAll("[\\<\\>\\\"\\'\\(\\)\\\\\\n\\r\\f]", " ").trim() 

我做进口导入的java.util.regex *

+0

什么是您正在使用的文本? – Rao

+0

虽然这不是惯用的Groovy,但据我所知,你写的东西应该可以工作。你可以添加一个输入字符串的例子,以及预期的和实际的输出吗? – user31601

回答

2

你不需要import java.util.regex.*

斜线串使事情变得更加容易:

String SCRUB_REGEX = /[<>"'()\\\n\r\f]/ 
String SCRUB_REPLACEMENT = ' ' 
String trim = value.replaceAll(SCRUB_REGEX, SCRUB_REPLACEMENT).trim(); 

因此,这将取代所有的:

  • <
  • >
  • "
  • '
  • (
  • )
  • \
  • \n
  • \r
  • \f

随着空间的变化

0

很难说没有输入和输出,但也有少数评论:

  1. 你不需要逃脱字符类内的特殊字符(括在方括号[]之间)。您仍然需要使用单个转义来获取特殊结构。您可以使用以下方式来代替:

"[<>\"'()\n\r\f]"

  • 您可能希望只用一个空格来代替你的角色多次出现。在这种情况下,添加一个量词,因为这样的:
  • "[<>\"'()\n\r\f]+"

  • String.trim仅修剪您的给定String的开始和结束掉空格。中间的任何东西都不会被修剪。如果String完全是空白,则trim将返回空的String
  • +0

    谢谢你们,我在google找不到更好的解释。 –