我需要一个正则表达式来替换这个文本:
("{scriptid}_*0123_00000000_ABC-Description*");
使用以下文字:
("{scriptid}_*0123_00000000_ABC-Description*"));
或换句话说:*我必须添加第二个结束括号。
说明:
("{scriptid}_*0123_00000000_ABC-Description*");
("{scriptid}_4-digits_8-alphanumeric_X-alphanumeric-description");
我尝试了一些表达式,但它确实没有用。
有人可以帮助我吗?
答案 0 :(得分:1)
匹配所有以');'
结尾的行的一般正则表达式(如果有尾随空格也匹配)可以是这样的:
s/\);\s*$/\)\);/
在线测试here。
更新:添加右括号的通用正则表达式,仅匹配以lr_start_transaction
开头的行:
s/^\s*(lr_start_transaction.*\))\s*;\s*$/\1\);/
在线测试here。
无论如何,如果我们不讨论通用正则表达式,你还必须指定你正在编码的语言(因为每个正则表达式引擎都差别很小)。
还要考虑包含一些不必匹配的行。
答案 1 :(得分:1)
根据您的初始字符串,您可以选择它:
/(\("\{scriptid\}_[0-9]{4}_[a-z0-9]{8}_[-a-z0-9]+"\));$/i
$
与行尾相匹配,i
标记适用于不区分大小写。
然后您可以使用$1);
替换(为了简化替换,我将;
从匹配中的捕获组中删除。