Aptana Studio查找和替换中的正则表达式

时间:2014-01-18 12:49:44

标签: regex replace ide aptana

我正在尝试在aptana中的许多php文件中进行查找和替换。为了简化我的工作,我做了一个正则表达式,找到了我需要的东西但是替换不起作用。

这正是我想要做的:

 Replace _e("This is a sentence.");
 with    _e("This is a sentenct.","mydomain");

这是我用于查找匹配的正则表达式:

\_e\(\"([\a-z-]+)\"\) --> it works

这是我用来替换匹配的正则表达式

\_e\(\"([\a-z-]+)\",\"mydomain\")    --> It does not work, 

这取代了:

_e("([-z-]+)","mydomain");  --> bad result

编辑:另外,我需要我的正则表达式才能找到像ă,ş这样的特殊字符

1 个答案:

答案 0 :(得分:3)

您似乎还不太了解替换字符串的工作原理。替换字符串是普通字符串,里面没有正则表达式符号。与文字字符串的唯一区别是您可以添加搜索模式的反向引用。

示例:

search:  (_e\("[^"]*")\)
replace: $1,"mydomain")

模式细节:

(          # open the capture group 1
    _e     # literal: _e
    \("    # literal: (" (literal parenthesis must be escaped since it has a
           # special meaning in a pattern (to define groups)) 
    [^"]*  # all that is not a ", zero or more times
    "      # literal "
)          # close the capture group 1
\)         # literal closing parenthesis
替换字符串中的

$1是反向引用,并且是从搜索模式引用捕获组1的内容。请注意,右括号不会被转义,因为它在替换字符串中没有特殊含义。

(别忘了检查搜索/替换对话框中的。*复选框)