Matlab:正则表达式替换

时间:2017-02-08 21:55:41

标签: regex matlab

我有一个字符串,让我们说它是“min(Current_em)”,我想用“Current_em”替换它(即括号内的字符串)。

看一下正则表达式教程,我想我想要像

这样的东西
angular.module("myModule")
    .run(appRun);
appRun.$inject = ["$rootScope", "$state", "SessionService"];

function appRun($rootScope,  $state, SessionService) {

  var isLogged = ($rootScope.$session.id_login ? true : false);

    if (isLogged) {            
        angular.element('body').removeClass('hidden');  
    } else {
        return SessionService.getSession() // Creo la sessione utente
        .then(function(response){
            isLogged = ($rootScope.$session.id_login ? true : false);

            var isPrivatePage = to.data.privatePage;
            var isPublicPage = to.data.publicPage;

            if((isPrivatePage && !isLogged)||(isPublicPage && isLogged)){
                e.preventDefault();
                $state.go('home');
            }

        }); 
    }
}

但这没有任何作用。我可以对正则表达式的黑暗艺术有一些指示吗?

1 个答案:

答案 0 :(得分:2)

您可以匹配(...)并使用'\(([^)]*)\)''\(([^()]*)\)'捕获其内容(如果在内部,则不会出现()

然后,您需要替换为捕获组#1的反向引用:

regexprep('min(Current_em)', '.*\(([^()]*)\)', '$1')

模式细节:

  • .* - 任意0个字符,贪婪,尽可能多(也许,您可以用[^(]*替换它以获得更好的性能)
  • \( - 文字((必须转义,因为它是正则表达式中的组打开运算符)
  • ([^()]*) - 捕获除了(*以外的零个或多个([^...])字符的组#1是否定的字符类){{1 }}和(
  • ) - 文字\)(必须转义,因为它是正则表达式中的群组关闭运算符)