Chinaunix

标题: 关于RLENGTH [打印本页]

作者: menulst    时间: 2012-10-11 23:28
标题: 关于RLENGTH
  1. [root@localhost awk]# echo "aAAAaBBBB" | awk '{len=match($0, /[A-Z]+/); print len, RSTART, RLENGTH, IGNORECASE}'
  2. 2 2 3 0
  3. [root@localhost awk]# echo "aAAAbBBBB" | awk '{len=match($0, /[A-Z]+/); print len, RSTART, RLENGTH, IGNORECASE}'
  4. 2 2 8 0
复制代码
RLENGTH的值为什么会发生变化?请高手指点下.
作者: menulst    时间: 2012-10-11 23:30
awk版本:
  1. [root@localhost awk]# awk --version
  2. GNU Awk 3.1.7
  3. Copyright (C) 1989, 1991-2009 Free Software Foundation.
复制代码

作者: yinyuemi    时间: 2012-10-11 23:44
回复 1# menulst

看看这样是不是结果就一样了,和awk应该没关系
    Lang=C; echo "aAAAaBBBB" | awk '{len=match($0, /[A-Z]+/); print len, RSTART, RLENGTH, IGNORECASE}'
    Lang=C; echo "aAAAbBBBB" | awk '{len=match($0, /[A-Z]+/); print len, RSTART, RLENGTH, IGNORECASE}'

作者: menulst    时间: 2012-10-12 00:21
回复 3# yinyuemi
  1. [root@localhost awk]# Lang=C; echo "aAAAaBBBB" | awk '{len=match($0, /[A-Z]+/); print len, RSTART, RLENGTH, IGNORECASE}'
  2. 2 2 3 0
  3. [root@localhost awk]# Lang=C; echo "aAAAbBBBB" | awk '{len=match($0, /[A-Z]+/); print len, RSTART, RLENGTH, IGNORECASE}'
  4. 2 2 8 0
复制代码
貌似结果一样啊
作者: seesea2517    时间: 2012-10-12 09:35
LANG 大写。
  1. [seesea@UC ~]$ echo "aAAAaBBBB" | awk '{len=match($0, /[A-Z]+/); print len, RSTART, RLENGTH, IGNORECASE}'
  2. 2 2 3 0
  3. [seesea@UC ~]$ echo "aAAAbBBBB" | awk '{len=match($0, /[A-Z]+/); print len, RSTART, RLENGTH, IGNORECASE}'
  4. 2 2 8 0
  5. [seesea@UC ~]$ echo $LANG
  6. zh_CN
  7. [seesea@UC ~]$ LANG=C; echo "aAAAbBBBB" | awk '{len=match($0, /[A-Z]+/); print len, RSTART, RLENGTH, IGNORECASE}'
  8. 2 2 3 0
  9. [seesea@UC ~]$ LANG=C; echo "aAAAaBBBB" | awk '{len=match($0, /[A-Z]+/); print len, RSTART, RLENGTH, IGNORECASE}'
  10. 2 2 3 0
  11. [seesea@UC ~]$ echo $LANG
  12. C
  13. [seesea@UC ~]$ echo "aAAAaBBBB" | awk '{len=match($0, /[A-Z]+/); print len, RSTART, RLENGTH, IGNORECASE}'        
  14. 2 2 3 0
  15. [seesea@UC ~]$ echo "aAAAbBBBB" | awk '{len=match($0, /[A-Z]+/); print len, RSTART, RLENGTH, IGNORECASE}'
  16. 2 2 3 0
复制代码

作者: L_kernel    时间: 2012-10-12 10:02
这个怎么解释?疑惑~~
作者: menulst    时间: 2012-10-12 11:33
seesea2517 发表于 2012-10-12 09:35
LANG 大写。


的确是这样,这个怎么解释呢?能不能讲下? 是和正则的Unicode有关?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2