亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 正則匹配提取文本 [打印本頁]

作者: mvplove123    時(shí)間: 2016-02-18 11:18
標(biāo)題: 正則匹配提取文本
本帖最后由 mvplove123 于 2016-02-18 11:27 編輯

大神們,有個(gè)正則匹配問題,請(qǐng)教下,如何只匹配name:后面的值(示例1:北京新世紀(jì)日航飯店寫字樓,示例2: 示例3:五道口),下面為日志的三種格式
1、to=name:北京新世紀(jì)日航飯店寫字樓$uid:1_100040664735$coord:1.2949036E7,4828900.0&dt=1
2、to=nameuid:1_7ZZZvuYRVBvm$coord:1.2967055E7,4833891.0&dt=1
3、to=name:五道口&dt=1


就是如果文本中有$,則提取截止第一個(gè)$符號(hào)的字符,
如果沒有$,則提取截止第一個(gè)&符號(hào)前面的字符,
我是這么寫的,但是有問題to=name.*?)\$?&


我要java的正則,
作者: jason680    時(shí)間: 2016-02-18 11:35
本帖最后由 jason680 于 2016-02-18 11:35 編輯

回復(fù) 1# mvplove123

$ grep -oP "(?<=to=name:)[^&$]*" FILE
北京新世紀(jì)日航飯店寫字樓
五道口

$ perl -lane '{print $1 if(m/(?<=to=name:)([^\$\&]*)/)}' FILE
北京新世紀(jì)日航飯店寫字樓

五道口

   
作者: moperyblue    時(shí)間: 2016-02-18 11:58
  1. (?<=name:)(?!uid:)\b[^&$]*
復(fù)制代碼

作者: L_WC    時(shí)間: 2016-02-18 18:07
本帖最后由 L_WC 于 2016-02-18 18:25 編輯

回復(fù) 1# mvplove123 perl
  1. [root@server0 ~]# cat cut_name.pl
  2. #!/usr/bin/perl
  3. $s1 = 'to=name:北京新世紀(jì)日航飯店寫字樓$uid:1_100040664735$coord:1.2949036E7,4828900.0&dt=1';
  4. $s2= 'to=name:$uid:1_7ZZZvuYRVBvm$coord:1.2967055E7,4833891.0&dt=1';
  5. $s3 = 'to=name:五道口&dt=1';

  6. sub cut_name{
  7.     $string = shift;
  8.     if($string =~ m/name:(.*?)[$|&]/g){
  9.         print $1;
  10.         print "\n";
  11.     }
  12.     else{
  13.         print 'No!';
  14.     }
  15. }

  16. cut_name($s1);
  17. cut_name($s2);
  18. cut_name($s3);
  19. [root@server0 ~]# perl cut_name.pl
  20. 北京新世紀(jì)日航飯店寫字樓

  21. 五道口
  22. [root@server0 ~]#
復(fù)制代碼
shell
  1. [root@server0 ~]# s1='to=name:北京新世紀(jì)日航飯店寫字樓$uid:1_100040664735$coord:1.2949036E7,4828900.0&dt=1'
  2. [root@server0 ~]# s2='to=name:$uid:1_7ZZZvuYRVBvm$coord:1.2967055E7,4833891.0&dt=1'
  3. [root@server0 ~]# s3='to=name:五道口&dt=1'
  4. [root@server0 ~]# y=${s1#*name:} && echo ${y%%[\$\&]*}
  5. 北京新世紀(jì)日航飯店寫字樓
  6. [root@server0 ~]# y=${s2#*name:} && echo ${y%%[\$\&]*}

  7. [root@server0 ~]# y=${s3#*name:} && echo ${y%%[\$\&]*}
  8. 五道口
  9. [root@server0 ~]#
復(fù)制代碼

作者: zy86416779    時(shí)間: 2016-02-18 19:28
  1. [root@study shell]# cat text
  2. to=name:北京新世紀(jì)日航飯店寫字樓$uid:1_100040664735$coord:1.2949036E7,4828900.0&dt=1
  3. to=name$uid:1_7ZZZvuYRVBvm$coord:1.2967055E7,4833891.0&dt=1
  4. to=name:五道口&dt=1
  5. [root@study shell]# cat text |grep '\ | awk 'BEGIN {FS="$"} {print $1}' | awk 'BEGIN {FS=":"} {print $2}'
  6. 北京新世紀(jì)日航飯店寫字樓

  7. [root@study shell]# cat text |grep -v '\ | awk 'BEGIN {FS="&"} {print $1}' | awk 'BEGIN {FS=":"} {print $2}'
  8. 五道口
  9. [root@study shell]#
復(fù)制代碼





歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2