2013-03-05 32 views
-1

例如:如何只需更換指定的字符

specified_character = "你好啊" 
str_to_replace1 = "你好啊朋友" 
str_to_replace2 = "你好啊" 

我想一個正則表達式匹配只是整個specified_character。它說只有str_to_replace2將匹配。我目前有:

/(?<=[^\p{Han}])#{specified_character}(?=[^\p{Han}])/ 

結果:

str_to_replace1 = "你好啊朋友" 
str_to_replace2 = "new text" 
+0

這取決於你正在使用的是什麼正則表達式,它也可能是一個好主意。 – 2013-03-05 03:19:44

+0

@HunterMcMillen更新 – goofansu 2013-03-05 03:38:03

+0

你能告訴我你期望的結果是什麼嗎? – oldergod 2013-03-05 04:17:03

回答

1

您需要添加一個錨開始(^)和結尾($)

pattern = /^Apple$/ 
'Apple'.gsub(pattern, 'Orange') # => 'Orange' 
'Apple Pie'.gsub(pattern, 'Orange') # => 'Apple Pie' 
0

如果你想看看是否字符串與模式相同,那麼你根本不應該使用正則表達式。只需使用字符串比較==

specified_character = "你好啊" 
str_to_replace1 = "你好啊朋友" 
str_to_replace2 = "你好啊" 

str_to_replace1 == specified_character # => false 
str_to_replace2 == specified_character # => true