Regex 如何使用正则表达式移位字符串的一部分
我有一个巨大的文本文件。 我需要改变这一点:Regex 如何使用正则表达式移位字符串的一部分,regex,Regex,我有一个巨大的文本文件。 我需要改变这一点: someChars_getSomeCharsValue( 为此: someChars_getValueSomeChars( 你可以看到图案。我需要的是将值(位于右括号之前)移到get之后 文本中没有空格someChars表示具有ASCII字符和未定义长度的字符串 这是一个C头文件的摘录,我需要在其中更改宏定义。这是该文件的摘录: #define usart_getLeastSignificatntBitFirstValue() ( __usa
someChars_getSomeCharsValue(
为此:
someChars_getValueSomeChars(
你可以看到图案。我需要的是将值
(位于右括号之前)移到get
之后
文本中没有空格someChars
表示具有ASCII字符和未定义长度的字符串
这是一个C头文件的摘录,我需要在其中更改宏定义。这是该文件的摘录:
#define usart_getLeastSignificatntBitFirstValue() ( __usart_getPropertyValue(0, 10) )
为此:
#define usart_getValueLeastSignificatntBitFirst() ( __usart_getValueProperty(0, 10) )
下面的代码应该可以满足您在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;
?>
请在类似以下位置尝试代码请解释下一步您想使用\w*?get(\w*?)查找函数(然后使用大写字母拆分组,并将最后一个这样的元素移到第一个?您使用什么语言来执行此操作?这一个听起来很棒。您能给我举个例子吗。