+ -
当前位置:首页 → 问答吧 → "正负向前后"查找中的pattern如何理解?

"正负向前后"查找中的pattern如何理解?

时间:2011-04-21

来源:互联网

本帖最后由 perlplus33 于 2011-04-21 12:20 编辑

请教一个问题:
对于 (?<=pattern)PATTERN) 中的pattern, 能否用类似 ?<=\p{IsUpper}\w+的写法替代?
目前很多例子都用具体的类似 ?<=Hello 等来代替。
如果可以,要在下面字符串中查找  Dearborn, MI两个子段,如何写正向后查找的pattern?
这里是Dearborn, MI 其它行则是另外的具体信息,比如 Hello, ZY等

Norma Corder:397-857-2735:74 Pine Street, Dearborn, MI 23874:3/28/45:245700

作者: perlplus33   发布时间: 2011-04-21

本帖最后由 yinyuemi 于 2011-04-21 12:45 编辑

回复 perlplus33
  1. echo "Norma Corder:397-857-2735:74 Pine Street, Dearborn, MI 23874:3/28/45:245700
  2. Norma Corder:397-857-2735:74 Pine Street, Hello, ZY 23874:3/28/45:245700" |perl -lne ' {$_=~/(?<=Street, )(.*)(?= \w*)/;print $1}'
  3. Dearborn, MI
  4. Hello, ZY
复制代码

作者: yinyuemi   发布时间: 2011-04-21



QUOTE:
回复  perlplus33
yinyuemi 发表于 2011-04-21 12:42




谢谢。

我的问题是在你这个code中,能否在Street 的位置不直接用Street, 而用元字符从而更有适用性。

作者: perlplus33   发布时间: 2011-04-21

回复 perlplus33


    $_=~/(?<= )([^,]*, [a-zA-Z]*)(?= \w*)/

作者: yinyuemi   发布时间: 2011-04-21



QUOTE:
回复  perlplus33


    $_=~/(?
yinyuemi 发表于 2011-04-21 13:12




谢谢。的确得出了正确结果。

可是我的疑问“能否在pattern”(小写)的地方使用元字符还是没有着落。有点遗憾。

作者: perlplus33   发布时间: 2011-04-21

热门下载

更多