0

我想用格式替换一个字符串

XXXXXXXXXXstart_N_endYYYYYYYYYY

(其中 N 是一个整数 [可以有多个数字],并且 start、end 是已知的固定字符串)删除start_N_end.

所以结果应该是

XXXXXXXXXXYYYYYYYYYY

一个真实的例子:我需要替换Input_0_keyMyKey

<input id="Input_0_key" name="Input_0_key" size="30" type="text">

注意:我需要使用正则表达式进行替换,不能使用 DOM 解析器或类似的。

提前致谢

4

4 回答 4

1

一样简单s/Input_\d+_key/MyKey/g

于 2013-05-03T23:35:00.240 回答
1

如果您使用的是我怀疑您来自历史记录的 java:

str.replaceAll("(\"[^\"]*?)Input_\\d*_key([^\"]*\")","$1$2");

将带走"hiInput_12312312_keyhello"并返回"hihello"

于 2013-05-03T23:24:42.897 回答
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);
于 2013-05-03T23:25:16.383 回答
1
s/Input.*?key/MyKey

将在和.*?之间尽可能少地匹配。Inputkey

于 2013-05-03T23:22:23.400 回答