我正在尝试在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
编辑:另外,我需要我的正则表达式才能找到像ă,ş这样的特殊字符
答案 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的内容。请注意,右括号不会被转义,因为它在替换字符串中没有特殊含义。
(别忘了检查搜索/替换对话框中的。*复选框)