use*_*896 0 regex perl pcre substring
假设我有IP,10.23.233.34我想简单地交换233for 234.第一个,第二个和最后一个八位字节是未知的.第三个八位字节是233或者234.我想进行替换,使其匹配IP,subs,并保留其他所有内容,同时仍然切换最后一个八位字节.例如:
输入: 10.23.233.34
s/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){}233\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){}234\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/
Run Code Online (Sandbox Code Playgroud)
输出: 10.23.234.34
这个问题确实不适合正则表达式解决方案.相反,我会做类似以下的事情:
$in = "10.23.233.34";
@a = split /\./, $in;
if ($a[2] == '233') {
$a[2] = '234';
}
print join(".", @a);
Run Code Online (Sandbox Code Playgroud)
上面的代码比你可能提出的任何正则表达式更具可读性.此外,下一个必须维护代码的人将能够实际阅读它.
| 归档时间: |
|
| 查看次数: |
146 次 |
| 最近记录: |