2011-11-04 44 views
1

目前,假設要操作的字符串是abXYabcXYZ,我想刪除所有不是「abc」的東西,全部放在一起。我正則表達式的命令是,像這樣:正則表達式並沒有替換所有請求的字符

[^abc] 

返回AB + ABC+++,當我需要返回++++ ABC+++。如果我使用相同的字符串來操作,但只替換任何不是「ab」的東西,我會得到ab ++ ab ++++,這是正確的。如何做到這一點,所以第一次測試不會在ab中添加,當它缺少c時?

+1

正則表達式是完全錯誤的。 '[^ abc]'表示匹配不是'a','b'或'c'的任何字符。你是什​​麼意思的「正則表達式命令」?你到底在用什麼? – NullUserException

+0

要理解你的方式的錯誤,請嘗試使用'axxxbxxxxcccxxxbbbbx'作爲任一正則表達式的輸入。 – NullUserException

+0

嘗試[^ abc] +,因爲行中有多個元素。 –

回答

0

正如NullUserExceptionexplained_ఠ所解釋的,正則表達式[^ abc]表示任何不是a,bc的單個字符。

使用正則表達式對ab++abc+++進行更換隻能更換++是[^ ABC]),以+(我想你替換[^ ABC]到+),導致該字符串保持不變。

至於第二種情況,我想你想使用一個正則表達式[^ ab],它將匹配c+這兩個字符,並得到結果ab++ab++++

這就解釋了爲什麼你有這個。我真的不知道是否有任何正則表達式匹配\w+而不是像abc這樣的特定字符串。並且在某些情況下,您可以通過將abc替換爲不是字符的另一個字符串(如%),並將所有\w替換爲+,然後將%替換回abc

希望它有幫助。