2014-11-21 44 views
0

我有以下字符串示例。我想从字符串中找到第二个数字,并用其他随机数字替换。我有随机数字,但问题是找到第二个数字,并用新数字替换。如何做到这一点?从字符串中找到第二个数字并用新数字替换

1. "data[KPI][0][rows][0][name]" 
2. "data[KPI][0][rows][1][name]" 
3. "data[KPI][0][rows][2][name]" 

期望输出

1. "data[KPI][0][rows][4][name]" 
2. "data[KPI][0][rows][5][name]" 
3. "data[KPI][0][rows][6][name]" 

回答

1
\d+(?=[^\d]*$) 

尝试this.See演示。

http://regex101.com/r/uV3aL0/32

var re = /\d+(?=[^\d]*$)/gim; 
var str = 'data[KPI][0][rows][0][name]\ndata[KPI][0][rows][1][name]\ndata[KPI][0][rows][2][name]'; 
var subst = ''; 

var result = str.replace(re, subst); 
+0

您可以提供完整的代码来替换第二位数字吗?你的答案找到第二位数字,但如何取代它? – Sadikhasan 2014-11-21 11:26:26

+0

@Sadikhasan补充说明 – vks 2014-11-21 11:32:13

+0

它给我空数组'数据[KPI] [0] [行] [] [名称]'而不是随机数字。 – Sadikhasan 2014-11-21 11:35:22

1

嘿,请试试这个:

var str="data[KPI][0][rows][0][name]"; 
var Result= str.replace(/(\[\d\]\[[^\]]+\])\[\d\]/, "$1[YourCharTo Replace]"); 

希望它可以帮助

+0

感谢您的帮助。 – Sadikhasan 2014-11-21 12:11:29

1

希望这有助于

Java的脚本的方式

var mystr = "data[KPI][0][rows][0][name]"; 

var regex  = /(data\[\D{1,}\[\d{1,}]\[\D{1,}\])(\[\d{0,}])(\[\D{0,}])/; 

console.log(mystr.replace(regex,"$1[DesiredNumber]$3")); 

PHP路

$str   = "data[KPI][0][rows][0][name]"; 

$regex  = "/(data\[\D{1,}\[\d{1,}]\[\D{1,}\])(\[\d{0,}])(\[\D{0,}])/"; 

$replacements = '${1}[YourNumber]${3}'; 

echo preg_replace($regex, $replacements, $str); 
+0

感谢您的帮助 – Sadikhasan 2014-11-21 12:10:44

相关问题