如何使用正则表达式移动字符串的一部分

时间:2016-09-27 11:10:11

标签: regex

我有一个巨大的文本文件。 我需要改变这个:

[UIImage imageNamed:@”Home”]

到此:

someChars_getSomeCharsValue(

你可以看到模式。我需要的是在someChars_getValueSomeChars( 之后立即转移Value(它位于左括号之前)。

文本中没有空格。 get代表带有ASCII字符和未定义长度的字符串。

这是我需要更改宏定义的C头文件的摘录。这是文件的摘录:

someChars

变成这个:

#define usart_getLeastSignificatntBitFirstValue()   ( __usart_getPropertyValue(0, 10) )

1 个答案:

答案 0 :(得分:0)

以下代码可以为您提供所需的php ...在其他语言中也是如此:

<?php
$re = "/(\\w*?get)(\\w*?)(\\()/"; 
$str = "#define usart_getLeastSignificatntBitFirstValue()   ( __usart_getPropertyValue(0, 10) )"; 

$result2=preg_replace_callback($re,function($groups){
    $words=preg_split("/(?=[A-Z])/",$groups[2],-1,PREG_SPLIT_NO_EMPTY);
    $newStr='';
    for($i=0;$i<count($words);$i++)
    {
        if($i==(count($words)-1))
            $newStr=$words[$i].$newStr;
        else
            $newStr=$newStr.$words[$i];
    }
    return $groups[1].$newStr.$groups[3];
},$str,-1);
echo '<br>';
echo $result2;
?>

尝试像http://phpfiddle.org/

这样的代码