动态表达需要简单的regex(正则表达式)

Need simple regex (regular expression) for dynamic expression

我需要一个正则表达式来替换这段文字:

("{scriptid}_*0123_00000000_ABC-Description*");

加上这段文字:

("{scriptid}_*0123_00000000_ABC-Description*"));

或者换句话说:*我必须添加第二个右括号。

解释:

("{scriptid}_*0123_00000000_ABC-Description*");

("{scriptid}_4-digits_8-alphanumeric_X-alphanumeric-description");

我尝试了一些表达式,但它确实不起作用。

有人能帮帮我吗?

匹配所有以 ');' 结尾的行的通用正则表达式(如果有尾随空格也匹配)可以是这样的:

s/\);\s*$/\)\);/

在线测试here.

UPDATE:添加右括号的通用正则表达式,仅匹配以 lr_start_transaction:

开头的行
s/^\s*(lr_start_transaction.*\))\s*;\s*$/\);/

在线测试here.

无论如何,如果我们不是在谈论通用正则表达式,您还必须指定您编码所使用的语言(因为每个正则表达式引擎都略有不同)。

还考虑包括一些不必匹配的行。

根据您的初始字符串,您可以 select 这样做:

/(\("\{scriptid\}_[0-9]{4}_[a-z0-9]{8}_[-a-z0-9]+"\));$/i

$匹配行尾,i标志为不区分大小写.

然后您可以替换为 );(为了简化替换,我在匹配中将 ; 排除在捕获组之外。

http://refiddle.com/refiddles/5625058d75622d65a01c0000