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

yqhsw0fo  于 2023-05-08  发布在  其他
关注(0)|答案(2)|浏览(259)

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

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

有了这段文字:

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

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

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

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

我试了一些表达方式,但它并不真正工作。
有人能帮帮我吗?

mzsu5hc0

mzsu5hc01#

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

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

在线测试here

UPDATE:添加右括号的泛型正则表达式,只匹配以lr_start_transaction开头的行:

s/^\s*(lr_start_transaction.*\))\s*;\s*$/\1\);/

在线测试here
无论如何,如果我们不是在谈论泛型正则表达式,你还必须指定你正在编码的语言(因为每个正则表达式引擎都有很大的不同)。
还要考虑包括一些不必匹配的行。

jucafojl

jucafojl2#

根据您的初始字符串,您可以使用以下命令选择它:

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

$匹配行尾,i标志用于大小写不敏感
然后,您可以替换为$1);(为了简化替换,我将;从匹配中的捕获组中删除。

相关问题