Chinaunix
标题:
perl的正则匹配问题
[打印本页]
作者:
earl808
时间:
2008-08-21 13:30
标题:
perl的正则匹配问题
我有这样的一些文本 XXX(PU 。) (PU “)XXX 或 XXX(PU ?) (PU “)XXX 用这样的正则匹配:
$
_
=
~
/
(
.
*
)
(
\
(
PU 。\
)
\
s
*
\
(
PU “\
)
)
(
.
*
)
/
得到的$2怎么是等于$2=(PU 。 $3=) (PU “)XXX
我是想要一次得到(PU 。) (PU “)或(PU ?) (PU “)
谢谢!
作者:
johnrobbet
时间:
2008-08-21 13:30
你的表达式匹配不了第二种情况(带有问号的)
试下这样:
/(.*)(\(PU (。|?)\)\s*\(PU “\))(.*)/
$2=(PU 。) (PU “)或者
$2=(PU ?) (PU “)
其实,你的正则表达式已经能够匹配第一种情况,并且在$2里面有你想要的东西了
作者:
cobrawgl
时间:
2008-08-21 13:40
好像没问题啊?
作者:
cobrawgl
时间:
2008-08-21 13:47
/(\(.*\))/;
这样也可以吧
作者:
earl808
时间:
2008-08-21 13:52
标题:
回复 #4 johnrobbet 的帖子
/(.*)(\(PU 。|?\)\s*\(PU “\))(.*)/
其实我是这么写的。。
不过楼上的是对的
原来加个括号就行了。
作者:
earl808
时间:
2008-08-21 13:53
最佳答案跑上去了。。我说的2楼
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2