我想用格式
替换字符串XXXXXXXXXXstart_N_endYYYYYYYYYY
(其中N是一个整数[可以有多个数字],并且start,end是已知的固定字符串)删除start_N_end
。
所以结果应该是
XXXXXXXXXXYYYYYYYYYY
一个真实示例:我需要将Input_0_key
替换为MyKey
<input id="Input_0_key" name="Input_0_key" size="30" type="text">
注意:我需要使用regexp进行替换,不能使用DOM解析器或类似的。
提前致谢
答案 0 :(得分:1)
s/Input.*?key/MyKey
.*?
将在Input
和key
之间尽可能少地匹配。
答案 1 :(得分:1)
如果你使用的是java,我怀疑你是来自你的历史:
str.replaceAll("(\"[^\"]*?)Input_\\d*_key([^\"]*\")","$1$2");
将"hiInput_12312312_keyhello"
并返回"hihello"
答案 2 :(得分:1)
在php中试试这个:
$string = '<input id="Input_0_key" name="Input_0_key" size="30" type="text">';
$pattern = '~<input id="\K[^"]++(?=" name="Input_0_key" size="30" type="text">)~';
echo preg_replace($pattern, 'Youhou', $subject);
答案 3 :(得分:1)
就像s/Input_\d+_key/MyKey/g
一样简单。