来自记录:
ERR_KEY_VALUE=Error logging id = {0,number,integer}; patient email = {1};
和类似记录,我需要选择以下所有内容: 1.先'='之后 2.不{}而不是{}
因此:
ERR_KEY_VALUE = 错误记录ID = {0,数字,整数}; 患者电子邮件= {1} ;
我得到了这个,但不起作用:
=.*(^[{*}])
编辑:
STATUS_INVITE_SENT=Invite sent
STATUS_IN_PROGRESS=In Progress
STATUS_COMPLETE=Complete
WEBUSER_DUPLICATE=An account with username ''{0}'' already exists
FAMILY_TABLE_FIELD_MISSING=The First Name field
DD_VALUE_AND=AND
KEY_VALUE=OR
family=family
ERR_KEY_VALUE=Error logging id = {0,number,integer}; patient email = {1};
结果:
...所以在Notepad ++中使用我的正则表达式后,我将用***
替换所选文本STATUS_INVITE_SENT=***
STATUS_IN_PROGRESS=***
STATUS_COMPLETE=***
WEBUSER_DUPLICATE=*** ''{0}'' ***
FAMILY_TABLE_FIELD_MISSING=***
DD_VALUE_AND=***
KEY_VALUE=***
family=***
ERR_KEY_VALUE=*** {0,number,integer}; *** {1};
答案 0 :(得分:1)
您可以使用
(?:\G(?!^)|^[^=\n]*=)\K(?:(\h*'*\{[^{}]*\}'*;?\h*)|(?:(?!\h*'*\{[^{}]*\}'*;?\h*).)+)
并替换为
(?{1}$1:***)
<强>详情
(?:\G(?!^)|^[^=\n]*=)
- 下一场比赛的开始(\G(?!^)
)或线的开头,然后是=
以外的任何0 +字符和换行符,然后是{ {1}}(=
)^[^=\n]*=
- 省略到目前为止匹配的全文\K
- 两种选择中的任何一种:
(?:(\h*'*\{[^{}]*\}'*;?\h*)|(?:(?!\h*'*\{[^{}]*\}'*;?\h*).)+)
:捕获第1组匹配...... (\h*'*\{[^{}]*\}'*;?\h*)
- 0+水平空白字符\h*
- 0+单引号'*
\{[^{}]*\}
- 0+单引号'*
- 可选的;?
;
- 0+水平空白字符\h*
- 或|
- 任何char,1或更多重复,不启动序列(见上文)。 如果匹配,(?:(?!\h*'*\{[^{}]*\}'*;?\h*).)+
替换会将匹配替换为组1的内容,否则替换为(?{1}$1:***)
。
见截图: