我想找到一个字符串中的所有数字并将它们加 50。
所以我有这个开始:
'text' => string 'Word (9), WordSomething (5)' 'text' => string 'Word (15)'
结果:
'text' => string 'Word (59), WordSomething (55)' 'text' => string 'Word (65)'
我想找到一个字符串中的所有数字并将它们加 50。
所以我有这个开始:
'text' => string 'Word (9), WordSomething (5)' 'text' => string 'Word (15)'
结果:
'text' => string 'Word (59), WordSomething (55)' 'text' => string 'Word (65)'
您可以为此使用正则表达式来捕获括号之间的数字,然后使用以下方法应用您自己的自定义回调preg_replace_callback()
:
$result = preg_replace_callback( '/\((\d+)\)/', function( $match) {
return '(' . ($match[1] + 50) . ')';
}, $string);
所以,给定这个输入字符串:
Word (9), WordSomething (5)
输出将是:
Word (59), WordSomething (55)
对于变量输入,使用闭包:
$number = 50;
$result = preg_replace_callback( '/\((\d+)\)/', function( $match) use( $number) {
return '(' . ($match[1] + $number) . ')';
}, $string);
编辑:如果您对正则表达式有非理性的恐惧,我认为这应该可行。
Edit2:这里是完整且有效的 java 代码: http: //pastebin.com/Z6uyDizz
我pseduo java代码:
var str = "Some3people6love20code102"
var newstr = ""
var tmp = ""
for (int i = 0; i<str.length; i++){
if((int)str[i] >= 48 && (int)str[i] <= 57){
tmp += str[i]
}else{
newstr+=((Integer.parseInt(tmp)+50)+"");
newstr+=str[i]
tmp = "";
}
}