正则表达式与分组

时间:2018-03-26 14:21:05

标签: regex

我必须用正则表达式替换以下内容。

echo Hello World $text

echo (Hello World $text)

我的尝试是

(echo)(\w+|\W+)/$1($2)

但这不是让我得到任何想法的理想结果吗?

1 个答案:

答案 0 :(得分:1)

为什么你的正则表达式不起作用? (\w+|\W+)要么匹配一个或多个单词字符,要么匹配一个或多个非单词字符,而不是它们的组合。然后,这将仅匹配echo后面的空格,忽略该行的其余部分。也许您的意思是使用[\w\W]+((?:\w|\W)+),但实际上,您需要的只是.*

See regex in use here

(echo )(.*)
  • (echo )按字面意思捕获此文字
  • (.*)将任意字符捕获到捕获组

替换$1($2)

输入echo Hello World $text

输出echo (Hello World $text)