我需要从我的文件中删除一些段落,它以一些字符串开头,并以特殊字符结束! 我使用preg_match_all来获得结果,请找到以下链接并选择preg_match_all http://www.phpliveregex.com/p/m5C
我希望输出像
item.isresult==1
答案 0 :(得分:0)
在这种特定情况下,我不需要正则表达式,因为您希望第一部分位于第一部分!
之前。 strstr()
做得很好。 explode('!',$string,2)[0]
可以正常运行,但它不是直接的黑客攻击,因为它会在从第一个元素中提取所需的字符串之前生成一个数组。
代码:
echo trim(strstr($string,'!',true));
输出:
ip vrf Access-Mgmt
rd 65000:3298
route-target export 65000:4585
route-target export 65000:4717
route-target import 65000:4585
route-target import 65000:2659
或者,如果您没有定位第一个文本块,而是想要Access-Mgmt
块,则可以preg_match()
使用此模式:/ip vrf Access-Mgmt[^!]+/
Demo或修剪带有/ip vrf Access-Mgmt[^!]+(?=\R)/
的尾随换行符。
以下是这些电话的外观:
var_export(preg_match('/ip vrf Access-Mgmt[^!]+/',$string,$out)?$out[0]:'fail');
// or
var_export(preg_match('/ip vrf Access-Mgmt[^!]+(?=\R)/',$string,$out)?$out[0]:'fail');
// or
var_export(preg_match('/ip vrf Access-Mgmt[^!]+/',$string,$out)?trim($out[0]):'fail');
答案 1 :(得分:-1)
您可以在http://www.phpliveregex.com/p/m5H
结帐preg_match_all我所做的是将字符串分解为条件([^!] *)!并替换 $ 0
<强>解释强>
( - start capture group
[ - start capture group
^! - match anything but ! symbol
] - start capture group
* - match 0 or more occurances
) - start capture group
! - followed by ! symbol
$0 - First capture group
如果这解决了您的使用案例,请告诉我。
<强>输出:强>
1 => Array(
0 => Array(
ip vrf Access-Mgmt
rd 65000:3298
route-target export 65000:4585
route-target export 65000:4717
route-target import 65000:4585
route-target import 65000:2659
),
1 => Array(
ip vrf Atheeb-VoIP
rd 65000:4592
import map Atheeb-VoIP_Imp
route-target export 65000:6277
route-target import 65000:6275
route-target import 65000:6276
route-target import 65000:6277
),
2 => Array(
ip vrf CISCO
rd 65000:1
route-target export 65000:1
route-target import 65000:1
),
3 => Array(
ip vrf EBU-Modem-DHCP
rd 10:10
route-target export 65000:6475
route-target import 65000:6476
),
4 => Array(
ip vrf ER-DCN
rd 65000:3719
route-target export 65000:5241
route-target import 65000:5241
route-target import 65000:5242
),
5 => Array(
ip vrf ER-LTE-Media-Signalling
rd 65000:3723
route-target export 65000:5245
route-target import 65000:5245
route-target import 65000:3507
route-target import 65000:3511
route-target import 65000:5535
),
6 => Array(
ip vrf ER-LTE-OAM
rd 65000:3724
route-target export 65000:5247
route-target import 65000:5247
),
)