php 正则表达式 x,php – 匹配x正则表达式或y正则表达式

我目前有这个:

^(.+)\(\w+\)|^(.+)\s\(\d{3}\:\d{3}\s\-\s\d{3}\:\d{3}\)

#1它只匹配Foo的

#2 Foo有正确的

#3与foo匹配,但它在第3个数组项[2]中:

3rd array output:

(

[0] => Foo (100:200 - 300:400)

[1] =>

[2] => Foo

)

大胆是我想要匹配的:

Foo(match11)这个(100:200 – 300:400)结束#1

Foo有(not_matched)(100:200 – 300:400)结束#2

Foo(100:200 – 300:400)结束#3

注意:我没有尝试匹配每行末尾的#1,#2,#3,仅供参考.

如果找到“(100:200 – 300:400)”然后得到它前面的任何文字,如果“(not_matched)(100:200 – 300:400)”找到然后得到它前面的任何文字,否则得到“(100:200 – 300:400)”前面的文字

可以识别elseif部分“(not_matched)(100:200 – 300:400)”,因为它在not_matched和(100:200 – 300:400)的2个圆括号之间只有1个空格.

编辑:

这就是我提出的似乎有效的方法,虽然它需要一些PHP中的解决方法才有用.

(.+)\s\(\w+\)\s\(|(.+)\s\(\d{3}\:\d{3}\s\-\s\d{3}\:\d{3}\)

工作示例:http://www.rubular.com/r/NSpGcnyg0p

出于某种原因,它似乎没有保存我的示例,因此您必须将其复制/粘贴.

但正则表达式并没有直接匹配它们,这就是为什么我必须删除php中的空数组元素,以便我在[1]元素中得到结果.

任何人都可以在我的正则表达式中看到我做错了什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值