当前位置:  编程技术>移动开发
本页文章导读:
    ▪tab菜单的兑现(转)        tab菜单的实现(转)   下面的是res下drawable文件夹下的一个selector文件,作用主要是当每一个tab选项被点击,获得焦点以及被选中的时候背景都会发生变化  Java代码   <?xml version="1.0".........
    ▪ 怎的停止AsyncTask和Thread        怎样停止AsyncTask和Thread  我们要知道在java的线程中,没有办法停止一个正在运行中的线程。在Android的AsyncTask中也是一样的。如果必须要停止一个线程,我们可以采用这个线程中设置一个标志.........
    ▪ 正则引导       正则指引 正则指引 基本信息 作者: 余晟 [作译者介绍] 出版社:电子工业出版社 ISBN:9787121165511 上架时间:2012-5-2 出版日期:2012 年5月 开本:16开 页码:315 版次:1-1 所属分类: 计算.........

[1]tab菜单的兑现(转)
    来源: 互联网  发布时间: 2014-02-18
tab菜单的实现(转)

 

 

下面的是res下drawable文件夹下的一个selector文件,作用主要是当每一个tab选项被点击,获得焦点以及被选中的时候背景都会发生变化 

Java代码  
  • <?xml version="1.0" encoding="UTF-8"?>  
  • <selector  
  •   xmlns:android="http://schemas.android.com/apk/res/android">  
  •     <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_timeline_normal" /></span>  
  •     <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_timeline_active" /></span>  
  •     <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_timeline_normal" /></span>  
  •     <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_timeline_active" /></span>  
  •     <item android:state_pressed="true" android:drawable="@drawable/tab_timeline_normal" /></span>  
  • </selector>  

  • 注意一定要继承TabActivity 
    Java代码  
  • public class MainActivity extends TabActivity {  
  •     private TabHost tabHost;  
  •     private RadioGroup mainbtGroup;  
  •     private static final String HOME = "主页";  
  •     private static final String REFER = "提及";  
  •     private static final String SECRET = "私信";  
  •     private static final String SEARCH = "搜索";  
  •     private static final String ATTENTIION = "关注";  
  •       
  •   
  •     @Override  
  •     public void onCreate(Bundle savedInstanceState) {  
  •         super.onCreate(savedInstanceState);  
  •         setContentView(R.layout.tabhost);//设置选项卡使用的布局文件  
  •           
  •         tabHost = this.getTabHost();  
  •   
  •         View view1 = View.inflate(MainActivity.this, R.layout.tab, null);  
  •         ((ImageView) view1.findViewById(R.id.tab_imageview_icon)).setImageResource(R.drawable.tab_timeline_selector);//设置每一个tab的图标  
  •         ((TextView) view1.findViewById(R.id.tab_textview_title)).setText(HOME);  
  •   
  •         TabHost.TabSpec spec1 = tabHost.newTabSpec(HOME)  
  •                 .setIndicator(view1)  
  •                 .setContent(new Intent(this, HomeTimeLineActivity.class));  
  •         tabHost.addTab(spec1);  
  •           
  •         View view2 = View.inflate(MainActivity.this, R.layout.tab, null);  
  •         ((ImageView) view2.findViewById(R.id.tab_imageview_icon)).setImageResource(R.drawable.tab_atme_selector);  
  •         ((TextView) view2.findViewById(R.id.tab_textview_title)).setText(REFER);  
  •   
  •         TabHost.TabSpec spec2 = tabHost.newTabSpec(REFER)  
  •                 .setIndicator(view2)  
  •                 .setContent(new Intent(this, ReferActivity.class));  
  •         tabHost.addTab(spec2);  
  •           
  •         View view3 = View.inflate(MainActivity.this, R.layout.tab, null);  
  •         ((ImageView) view3.findViewById(R.id.tab_imageview_icon)).setImageResource(R.drawable.tab_message_selector);  
  •         ((TextView) view3.findViewById(R.id.tab_textview_title)).setText(SECRET);  
  •   
  •         TabHost.TabSpec spec3 = tabHost.newTabSpec(SECRET)  
  •                 .setIndicator(view3)  
  •                 .setContent(new Intent(this, MessageActivity.class));  
  •         tabHost.addTab(spec3);  
  •           
  •         View view4 = View.inflate(MainActivity.this, R.layout.tab, null);  
  •         ((ImageView) view4.findViewById(R.id.tab_imageview_icon)).setImageResource(R.drawable.tab_explore_selector);  
  •         ((TextView) view4.findViewById(R.id.tab_textview_title)).setText(SEARCH);  
  •   
  •         TabHost.TabSpec spec4 = tabHost.newTabSpec(SEARCH)  
  •                 .setIndicator(view4)  
  •                 .setContent(new Intent(this, SearchActivity.class));  
  •         tabHost.addTab(spec4);  
  •           
  •         View view5 = View.inflate(MainActivity.this, R.layout.tab, null);  
  •         ((ImageView) view5.findViewById(R.id.tab_imageview_icon)).setImageResource(R.drawable.tab_focus_selector);  
  •         ((TextView) view5.findViewById(R.id.tab_textview_title)).setText(ATTENTIION);  
  •   
  •         TabHost.TabSpec spec5 = tabHost.newTabSpec(ATTENTIION)  
  •                 .setIndicator(view5)  
  •                 .setContent(new Intent(this, AttentionActivity.class));  
  •         tabHost.addTab(spec5);  
  •     }  

  • 下面的就是tabhost布局文件关键是tabhost,tabcontent和tabs这三个id一定要正确 
    Java代码  
  • <?xml version="1.0" encoding="UTF-8"?>  
  • <TabHost android:id="@android:id/tabhost"  android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">  
  •     <RelativeLayout android:orientation="vertical"  
  •         android:layout_width="fill_parent" android:layout_height="fill_parent">  
  •         <FrameLayout android:id="@android:id/tabcontent"  
  •             android:layout_width="fill_parent" android:layout_height="fill_parent" />  
  •         <TabWidget android:id="@android:id/tabs" <span >android:background="@drawable/tab_bkg"</span> android:fadingEdge="none"  
  •             android:fadingEdgeLength="0.0px" android:layout_width="fill_parent"  
  •             android:layout_height="wrap_content"  
  •             android:layout_alignParentBottom="true" />  
  •     </RelativeLayout>  
  • </TabHost>  

  • Java代码  
  • android:layout_alignParentBottom="true" 把tab的五个按钮挨着父控件的底部,在android里面RelativeLayout很好用  

  • 下面的是每一个tab项的布局文件上面是图片下面是文字 
    Java代码  
  • <?xml version="1.0" encoding="UTF-8"?>  
  • <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"  
  •   xmlns:android="http://schemas.android.com/apk/res/android">  
  •     <ImageView android:id="@+id/tab_imageview_icon" android:layout_width="fill_parent" android:layout_height="32.0dip" android:scaleType="fitCenter" />  
  •     <TextView android:id="@+id/tab_textview_title" android:textSize="11.0sp"  android:ellipsize="marquee" android:gravity="center" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" android:marqueeRepeatLimit="1" />  
  • </LinearLayout>  


  •  
    是一张.9.png格式的图片,这个很有用哟在android里,经常用来处理图片拉升的问题。左边和上面的小点表示要拉伸的地方,右边和下面的表示内容区。关于.9.png格式图片在android里面得更多应用看http://developer.android.com/guide/developing/tools/draw9patch.html 

        
    [2] 怎的停止AsyncTask和Thread
        来源: 互联网  发布时间: 2014-02-18
    怎样停止AsyncTask和Thread

     我们要知道在java的线程中,没有办法停止一个正在运行中的线程。在Android的AsyncTask中也是一样的。如果必须要停止一个线程,我们可以采用这个线程中设置一个标志位,然后在线程run方法或AsyncTask的doInBackground方法中的关键步骤判断这个标志位以决定是否继续执行。然后在需要终止此线程的地方改变这个标志位以达到停止线程的目的。

                  从外部调用AsyncTask的cancel方法并不能停止一个已经启动的AsyncTask。这个cancel方法的作用与线程的interrupt方法相似,调用了一个线程的interrupt方法之后线程仍然运行,但是如果该线程的run方法里面调用过sleep的或者wait方法后,处于sleep或wait状态,则sleep和wait立即结束并且抛出InterruptedException异常。AsyncTask的cancel方法也一样,如果在这个Task的doInBackground方法中调用了sleep或wait方法,当在UI线程中调用了这个Task实例的cancel方法之后,sleep或wait立即结束并且抛出InterruptedException异常,但是如果捕获该异常的代码后面还有其他代码,则这些代码还会继续执行。测试代码如下:

    Java代码:


  • package eoe.task;

  • import android.app.Activity;
  • import android.os.AsyncTask;
  • import android.os.Bundle;
  • import android.util.Log;
  • import android.view.View;
  • import android.view.View.OnClickListener;
  • import android.widget.Button;

  • public class AsyncTaskTest extends Activity {
  • /** Called when the activity is first created. */


  • @Override
  • public void onCreate(Bundle savedInstanceState) {
  • super.onCreate(savedInstanceState);
  • setContentView(R.layout.main);
  • //set the six buttons listener
  • Button startButton=(Button) this.findViewById(R.id.StartTask);
  • final TestAsyncTask task=new TestAsyncTask(0);
  • startButton.setOnClickListener(new OnClickListener() {
  • public void onClick(View v) {
  • task.execute("str1","str2");
  • }
  • });
  • Button endButton=(Button) this.findViewById(R.id.StopTask);
  • endButton.setOnClickListener(new OnClickListener() {
  • public void onClick(View v) {
  • task.cancel(false);
  • }
  • });


  • Button startSleepButton=(Button) this.findViewById(R.id.StartThread_sleep);
  • final ThreadForTestSleep threadForTestSleep=new ThreadForTestSleep();
  • startSleepButton.setOnClickListener(new OnClickListener() {
  • public void onClick(View v) {
  • threadForTestSleep.start();
  • }
  • });


  • Button endSleepButton=(Button) this.findViewById(R.id.StopThread_sleep);
  • endSleepButton.setOnClickListener(new OnClickListener() {
  • public void onClick(View v) {
  • threadForTestSleep.interrupt();
  • }
  • });


  • Button startWaitButton=(Button) this.findViewById(R.id.StartThread_wait);
  • final ThreadForTestWait threadForTestWait=new ThreadForTestWait();
  • startWaitButton.setOnClickListener(new OnClickListener() {
  • public void onClick(View v) {
  • threadForTestWait.start();
  • }
  • });


  • Button endWaitButton=(Button) this.findViewById(R.id.StopThread_wait);
  • endWaitButton.setOnClickListener(new OnClickListener() {
  • public void onClick(View v) {
  • threadForTestWait.interrupt();
  • }
  • });
  • }
  • /**
  • * AsyncTask
  • * @author alex
  • *
  • */
  • private class TestAsyncTask extends AsyncTask<String, Integer, Double>{
  • double a;

  • public TestAsyncTask(double a){
  • this.a=a;
  • }


  • @Override
  • protected Double doInBackground(String... params) {
  • for(String param:params){
  • Log.i("TestAsyncTask","param:"+param );
  • }
  • Log.i("TestAsyncTask", "doInBackground is start");
  • for(int i=0;i<10000000;i++){
  • a=i*i+i;
  • Log.d("-----", "a:"+a);
  • }
  • Log.i("TestAsyncTask", "sleep 1 is end");
  • try {
  • Thread.sleep(30000);
  • } catch (InterruptedException e) {
  • // TODO Auto-generated catch block
  • e.printStackTrace();
  • }
  • Log.i("TestAsyncTask", "sleep 2 is end and continue execute");
  • return a;
  • }


  • protected void onPostExecute(Double result){
  • Log.i("last a value is", ""+result);
  • }
  • }

  • /**
  • * test sleep
  • * @author Administrator
  • *
  • */
  • private class ThreadForTestSleep extends Thread{
  • public void run(){
  • Log.i("ThreadForTestWait", "sleep start");
  • try {
  • sleep(30000);
  • } catch (InterruptedException e) {
  • // TODO Auto-generated catch block
  • e.printStackTrace();
  • }
  • double a;
  • for(int i=0;i<10000000;i++){
  • a=i*i+i;
  • Log.d("-----", "a:"+a);
  • }
  • Log.i("ThreadForTestWait", "sleep end");
  • }
  • }


  • /**
  • * test wait
  • * @author Administrator
  • *
  • */
  • private class ThreadForTestWait extends Thread{
  • public void run(){
  • Log.i("ThreadForTestWait", "wait start");
  • try {
  • synchronized(this){
  • wait();
  • }
  • } catch (InterruptedException e) {
  • // TODO Auto-generated catch block
  • e.printStackTrace();
  • }
  • Log.i("ThreadForTestWait", "wait end");
  • }
  • }
  • }
  • 复制代码

                     我们来看看这个例子怎么样,这里主要用到了view.View.OnClickListener;监听,android.widget.Button按钮,我们定义一个Button是开始,一个Button定义为停止。这样我们就可以给按钮加上一个监听,在监听里定义当点击按钮时,就可以停止AsyncTask和Thread,这个方法我个人感觉非常的好。这个主要是加了一个sleep(30000);这样的话,我们就有时间来判断一下是否应该怎么样做

        
    [3] 正则引导
        来源: 互联网  发布时间: 2014-02-18
    正则指引

    正则指引
    基本信息
    作者: 余晟 [作译者介绍]
    出版社:电子工业出版社
    ISBN:9787121165511
    上架时间:2012-5-2
    出版日期:2012 年5月
    开本:16开
    页码:315
    版次:1-1
    所属分类: 计算机 > 软件与程序设计 > 综合 > 综合


    更多详情 》》》《正则指引》
    内容简介
    计算机书籍
       《正则指引》针对作者在开发中遇到的实际问题,以及其他开发人员咨询的问题,总结出一套使用正则表达式解题的办法,并通过具体的例子指导读者拆解、分析 问题。全书分为三大部分:第一部分主要讲解正则表达式的基础知识,涵盖了常见正则表达式中的各种功能和结构;第二部分主要讲解关于正则表达式的更深入的知 识,详细探讨了编码问题、匹配原理、解题思路;第三部分将之前介绍的各种知识落实到6种常用语言.net、java、javascript、php、 python、ruby中,不但详细介绍了语言中正则表达式的用法,更点明了版本之间的细微差异,既可以作为专门学习的教材,也可以作为有用的参考手册。
      《正则指引》适合经常需要进行文本处理(比如日志分析或网络运维)的技术人员、熟悉常用开发语言的程序员,以及已经对正则表达式有一定了解的读者阅读。
    目录
    《正则指引》
    第一部分
    第1章 字符组 2
    1.1 普通字符组 2
    1.2 关于python的基础知识 4
    1.3 普通字符组(续) 6
    1.4 元字符与转义 8
    1.5 排除型字符组 10
    1.6 字符组简记法 12
    1.7 字符组运算 14
    1.8 posix字符组 15
    第2章 量词 17
    2.1 一般形式 17
    2.2 常用量词 18
    2.3 数据提取 21
    2.4 点号 23
    2.5 滥用点号的问题 23
    2.6 忽略优先量词 26
    2.7 转义 31
    第3章 括号 33

    .3.1 分组 33
    3.2 多选结构 39
    3.3 引用分组 44
    3.3.1 反向引用 48
    3.3.2 各种引用的记法 50
    3.3.3 命名分组 53
    3.4 非捕获分组 54
    3.5 补充 55
    3.5.1 转义 55
    3.5.2 url rewrite 56
    3.5.3 一个例子 58
    第4章 断言 59
    4.1 单词边界 59
    4.2 行起始/结束位置 61
    4.3 环视 68
    4.4 补充 74
    4.4.1 环视的价值 74
    4.4.2 环视与分组编号 74
    4.4.3 环视的支持程度 75
    4.4.4 环视的组合 77
    4.4.5 断言和反向引用之间的关系 79
    第5章 匹配模式 81
    5.1 不区分大小写模式 81
    5.1.1 模式的指定方式 82
    5.2 单行模式 84
    5.3 多行模式 85
    5.4 注释模式 87
    5.5 补充 88
    5.5.1 更多的模式 88
    5.5.2 修饰符的作用范围 89
    5.5.3 失效修饰符 90
    5.5.4 模式与反向引用 90
    5.5.5 冲突策略 91
    5.5.6 哪种方式更好 92
    第6章 其他 93
    6.1 转义 93
    6.1.1 字符串转义与正则转义 93
    6.1.2 元字符的转义 97
    6.1.3 彻底消除元字符的特殊含义 99
    6.1.4 字符组中的转义 101
    6.2 正则表达式的处理形式 101
    6.2.1 函数式处理 102
    6.2.2 面向对象式处理 102
    6.2.3 比较 103
    6.2.4 线程安全性 104
    6.3 表达式中的优先级 106
    第二部分
    第7章 unicode 110
    7.1 关于编码 110
    7.2 推荐使用unicode编码 111
    7.3 unicode匹配规则 115
    7.4 单词边界 117
    7.5 码值 119
    7.6 unicode属性 121
    7.6.1 unicode property 121
    7.6.2 unicode block 122
    7.6.3 unicode script 123
    7.7 unicode属性列表 123
    7.7.1 unicode property 123
    7.7.2 unicode block 125
    7.7.3 unicode script 128
    7.8 posix字符组 129
    第8章 匹配原理 130
    8.1 有穷自动机 130
    8.2 正则表达式的匹配过程 131
    8.3 回溯 134
    8.4 nfa和dfa 136
    第9章 常见问题的解决思路 138
    9.1 关于元素的三种逻辑 138
    9.1.1 必须出现 139
    9.1.2 可能出现 139
    9.1.3 不能出现 140
    9.2 正则表达式的常见操作 142
    9.2.1 提取 142
    9.2.2 验证 148
    9.2.3 替换 152
    9.2.4 切分 157
    9.3 正则表达式的优化建议 159
    9.3.1 使用缓存 159
    9.3.2 尽量准确地表达意图 160
    9.3.3 避免重复匹配 160
    9.3.4 独立出文本和锚点 161
    9.4 别过分依赖正则表达式 162
    9.4.1 彻底放弃字符串操作 162
    9.4.2 思维定势 163
    9.4.3 正则表达式可以匹配各种文本 164

    第 三 部 分
    第10章 .net 168
    10.1 预备知识 168
    10.2 正则功能详解 169
    10.2.1 列表 169
    10.2.2 字符组 170
    10.2.3 unicode属性 170
    10.2.4 字符组简记法 171
    10.2.5 单词边界 171
    10.2.6 行起始/结束位置 172
    10.2.7 环视 173
    10.2.8 匹配模式 173
    10.2.9 捕获分组的引用 174
    10.3 正则api简介 175
    10.3.1 regex 175
    10.3.2 match 179
    10.4 常用操作示例 180
    10.4.1 验证 180
    10.4.2 提取 180
    10.4.3 替换 181
    10.4.4 切分 182
    第11章 java 183
    11.1 预备知识 183
    11.2 正则功能详解 184
    11.2.1 列表 184
    11.2.2 字符组 184
    11.2.3 unicode属性 186
    11.2.4 字符组简记法 186
    11.2.5 单词边界 186
    11.2.6 行起始/结束位置 187
    11.2.7 环视 188
    11.2.8 匹配模式 188
    11.2.9 纯文本模式 189
    11.2.10 捕获分组的引用 189
    11.3 正则api简介 189
    11.3.1 pattern 190
    11.3.2 matcher 192
    11.3.3 string 194
    11.4 常用操作示例 195
    11.4.1 验证 195
    11.4.2 提取 196
    11.4.3 替换 196
    11.4.4 切分 197
    第12章 javascript 198
    12.1 预备知识 198
    12.2 正则功能详解 199
    12.2.1 列表 199
    12.2.2 字符组 199
    12.2.3 字符组简记法 200
    12.2.4 单词边界 200
    12.2.5 行起始/结束位置 201
    12.2.6 环视 201
    12.2.7 匹配模式 202
    12.2.8 捕获分组的引用 203
    12.3 正则api简介 203
    12.3.1 regexp 203
    12.3.2 string 207
    12.4 常用操作示例 210
    12.4.1 验证 210
    12.4.2 提取 210
    12.4.3 替换 211
    12.4.4 切分 211
    12.5 关于actionscript 211
    12.5.1 regexp 211
    12.5.2 匹配规则 212
    12.5.3 匹配模式 212
    12.5.4 正则api 212
    第13章 php 213
    13.1 预备知识 213
    13.2 正则功能详解 215
    13.2.1 列表 215
    13.2.2 字符组 216
    13.2.3 unicode属性 217
    13.2.4 字符组简记法 217
    13.2.5 单词边界 217
    13.2.6 行起始/结束位置 218
    13.2.7 环视 219
    13.2.8 匹配模式 219
    13.2.9 纯文本模式 220
    13.2.10 捕获分组的引用 220
    13.3 正则api简介 221
    13.3.1 preg 常量说明 221
    13.3.2 preg_quote 222
    13.3.3 preg_ grep 223
    13.3.4 preg_match 223
    13.3.5 preg_match_all 225
    13.3.6 preg_ last_ error 227
    13.3.7 preg_replace 227
    13.3.8 preg_ replace_ callback 227
    13.3.9 preg_ filter 228
    13.3.10 preg_ split 229
    13.4 常见的正则操作举例 230
    13.4.1 验证 230
    13.4.2 提取 230
    13.4.3 替换 231
    13.4.4 切分 232
    第14章 python 233
    14.1 预备知识 233
    14.2 正则功能详解 234
    14.2.1 列表 234
    14.2.2 字符组 235
    14.2.3 unicode属性 236
    14.2.4 字符组简记法 236
    14.2.5 单词边界 238
    14.2.6 行起始/结束位置 239
    14.2.7 环视 239
    14.2.8 匹配模式 240
    14.2.9 捕获分组的引用 240
    14.3 正则api简介 241
    14.3.1 regexobject 241
    14.3.2 re.compile(regex[, flags]) 243
    14.3.3 re.search(pattern, string[, flags]) 243
    14.3.4 matchobject 243
    14.3.5 re.match(pattern, string[, flags]) 244
    14.3.6 re.findall(pattern, sting[, flags]) 245
    14.3.7 re.finditer(pattern, string[, flags]) 245
    14.3.8 re.split(pattern, string[, maxsplit=0, flags=0]) 246
    14.3.9 re.sub(pattern, repl, string[, count, flags]) 247
    14.4 常用操作示例 248
    14.4.1 验证 248
    14.4.2 提取 248
    14.4.3 替换 249
    14.4.4 切分 250
    第15章 ruby 251
    15.1 预备知识 251
    15.2 正则功能详解 252
    15.2.1 列表 252
    15.2.2 字符组 252
    15.2.3 unicode属性 253
    15.2.4 字符组简记法 254
    15.2.5 单词边界 254
    15.2.6 行起始/结束位置 255
    15.2.7 环视 256
    15.2.8 匹配模式 256
    15.2.9 捕获分组的引用 257
    15.3 正则api简介 257
    15.3.1 regexp 257
    15.3.2 regexp.match(text) 259
    15.3.3 regexp.quote(text)和regexp.escape(text) 260
    15.3.4 string.index(regexp) 261
    15.3.5 string.scan(regexp) 261
    15.3.6 string.slice(regexp) 262
    15.3.7 string.split(regexp) 262
    15.3.8 string.sub(regexp, str) 263
    15.3.9 string.gsub(regexp, string) 264
    15.4 常用操作示例 264
    15.4.1 验证 264
    15.4.2 提取 265
    15.4.3 替换 265
    15.4.4 切分 265
    15.5 ruby 1.9的新变化 266
    第16章 linux/unix 268
    16.1 posix 268
    16.1.1 posix规范 268
    16.1.2 posix字符组 269
    16.2 vi 271
    16.2.1 字符组及简记法 271
    16.2.2 量词 272
    16.2.3 多选结构和捕获分组 272
    16.2.4 环视 273
    16.2.5 锚点和单词边界 273
    16.2.6 替换操作的特殊字符 274
    16.2.7 replacement中的特殊变量 276
    16.2.8 补充 276
    16.3 grep 277
    16.3.1 基本用法 277
    16.3.2 字符组 277
    16.3.3 锚点和单词边界 278
    16.3.4 量词 278
    16.3.5 多选结构和捕获分组 279
    16.3.6 options 279
    16.3.7 egrep和fgrep 280
    16.3.8 补充 280
    16.4 awk 281
    16.4.1 基本用法 281
    16.4.2 字符组及简记法 282
    16.4.3 锚点和单词边界 283
    16.4.4 量词 283
    16.4.5 多选结构 284
    16.4.6 补充 284
    16.5 sed 284
    16.5.1 基本用法 284
    16.5.2 字符组及简记法 285
    16.5.3 锚点和单词边界 285
    16.5.4 量词 286
    16.5.5 多选结构和捕获分组 286
    16.5.6 options 286
    16.5.7 补充 287
    16.6 总结 288
    附录a 常用语言中正则特性一览 291
    附录b 常用的正则表达式 293
    附录c 常用的正则表达式工具及资源 309
    本图书 来源于:中国互动出版网


        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    java/j2ee iis7站长之家
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3