2017-04-26 81 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找不到更好的解釋。 –