博文

正则表达式学习笔记(2008-04-20 16:36:00)

摘要: 正则表达式学习笔记   正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
  列目录时, dir *.txt或ls *.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的*的含义是不同的。   为便于理解和记忆,先从一些概念入手,所有特殊字符或字符组合有一个总表在后面,最后一些例子供理解相应的概念。 正则表达式
  是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
  可以通过在一对分隔符之间放入表达式模式的各种组件来构造一个正则表达式,即/expression/ 普通字符
  由所有那些未显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符,所有数字,所有标点符号以及一些符号。
非打印字符
字符 含义 \cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。 \f 匹配一个换页符。等价于 \x0c 和 \cL。 \n 匹配一个换行符。等价于 \x0a 和 \cJ。 \r 匹配一个回车符。等价于 \x0d 和 \cM。 \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。 \S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 \t 匹配一个制表符。等价于 \x09 和 \cI。 \v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
特殊字符
  所谓特殊字符,就是一些有特殊含义的字符,如上面说的"*.txt"中的*,简单的说就是表示任何字符串的意思。如果要查找文件名中有*的文件,则需要对*进行转义,即在其前加一个\。ls \*.txt。正则表达式有以下特殊字符。
特别字符 说明 $ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 ......

阅读全文(1384) | 评论:0

正则表达式之道(2008-04-20 16:35:00)

摘要: 正则表达式之道 原著:Steve Mansour
sman@scruznet.com
Revised: June 5, 1999
(copied by jm /at/ jmason.org from http://www.scruz.net/%7esman/regexp.htm, after the original disappeared! ) 翻译:Neo Lee
neo.lee@gmail.com
2004年10月16日 英文版原文 译者按:原文因为年代久远,文中很多链接早已过期(主要是关于vi、sed等工具的介绍和手册),本译文中已将此类链接删除,如需检查这些链接可以查看上面链接的原文。除此之外基本照原文直译,括号中有“译者按”的部分是译者补充的说明。如有内容方面的问题请直接和Steve Mansor联系,当然,如果你只写中文,也可以和我联系。 目 录 什么是正则表达式
范例
   简单
   中级(神奇的咒语)
   困难(不可思议的象形文字)
不同工具中的正则表达式 什么是正则表达式一个正则表达式,就是用某种模式去匹配一类字符串的一个公式。很多人因为它们看上去比较古怪而且复杂所以不敢去使用——很不幸,这篇文章也不能够改变这一点,不过,经过一点点练习之后我就开始觉得这些复杂的表达式其实写起来还是相当简单的,而且,一旦你弄懂它们,你就能把数小时辛苦而且易错的文本处理工作压缩在几分钟(甚至几秒钟)内完成。正则表达式被各种文本编辑软件、类库(例如Rogue Wave的tools.h++)、脚本工具(像awk/grep/sed)广泛的支持,而且像Microsoft的Visual C++这种交互式IDE也开始支持它了。 我们将在如下的章节中利用一些例子来解释正则表达式的用法,绝大部分的例子是基于vi中的文本替换命令和grep文件搜索命令来书写的,不过它们都是比较典型的例子,其中的概念可以在sed、awk、perl和其他支持正则表达式的编程语言中使用。你可以看看不同工具中的正则表达式这一节,其中有一些在别的工具中使用正则表达式的例子。还有一个关于vi中文本替换命令(s)的简单说明附......

阅读全文(1484) | 评论:0

在Vb2005种实现Listbox控件显示化学结构式(2008-04-18 22:49:00)

摘要: Title Make a ListBox display chemical symbols in Visual Basic 2005 Description This example shows how to make a ListBox display chemical symbols in Visual Basic 2005. Keywords ListBox, chemicals, chemical symbols, Visual Basic 2005, subscripts Categories Controls, VB.NET, Graphics  
The form's Load event handler uses the following statement to make its ListBox owner-drawn. lstFormulas.DrawMode = DrawMode.OwnerDrawVariable It then add several ChemInfo objects to the ListBox. The ChemInfo class has three fields: a Name (as in Sulfuric Acid), a Formula (as in H2SO4), and a Picture. The class also provides the following DrawChemInfo subroutine. This routine draws a chemical's formula with the numbers as subscripts. The code starts by calculating the top line for the formula's main text and the subscripted numbers. It then draws the chemical's name and "(". Next the code measures the strings "X" and "XX" and calculates how much extra s......

阅读全文(2070) | 评论:0

与 XML 一起使用 Visual Basic 和 ASP 生成 Excel 2(2008-04-18 20:16:00)

摘要:适用范围:
Microsoft® Office Excel 2003
Microsoft Visual Basic® 6.0
Microsoft Office Access 2003 摘要:学习用于使用 XML 文件和 XML 样式表创建带格式的 Excel 工作簿的方法。通过使用 Active Server Pages (ASP) 或 Microsoft Visual Basic 创建的 XML 模板,使您可以灵活地选择创建模板的、且最符合目标要求的方法。   本页内容
 引言
 XML 的定义
 XML 样式表的定义
 XML 文件的转换
 XML 平面化
 XML 样式表的优点
 XML 映射
 XML 电子表格 (XMLSS) 格式
 在 Excel 解决方案中集成 XML
 在流式传输 MIME 内容过程中为 Excel 工作簿设置格式
 使用 Visual Basic 或 ASP 为工作簿创建 XML 模板
 使用 ASP 将 XML 保留的 ADO 记录集转换为 XML 电子表格
 结论 引言
可以使用 Microsoft® Office Excel 2003,以可扩展标记语言 (XML) 格式打开、转换和保存文件。本文回顾了 XML 和 XML 样式表以及如何将其与 Excel 2003 一起使用。除了如何使用 Active Server Pages (ASP) 和 Microsoft Visual Basic® 创建带格式的 Excel 工作簿、如何创建 XML 模板并且此模板在用于 XSL 转换时生成一个可以直接在 Excel 中打开的带格式的工作簿之外,本文还提供了关键词和关键概念的定义。 注意:本文是对 Microsoft 知识库的各种文章的合并和更新。有关详细信息,请在 Microsoft 知识库中搜索词“XML”和“Excel”。
XML 的定义
XML 是一个用于分隔文本数据的简单、标准的方法。它类似于创建任意数据结......

阅读全文(3994) | 评论:0

Excel编程概念之:在 Visual Basic 中使用 excel(2008-04-18 20:12:00)

摘要:在 Visual Basic 语句中可以使用大多数 Microsoft Excel 工作表函数。 注意   一些工作表函数在 Visual Basic 中是不实用的。例如:Concatenate 函数就不实用,因为在 Visual Basic 中可使用 & 运算符来连接多个文本值。 从 Visual Basic 中调用工作表函数 在 Visual Basic 中,通过 WorksheetFunction 对象可使用 Microsoft Excel 工作表函数。 以下 Sub 过程使用 Min 工作表函数来决定在某个单元格区域中的最小值。首先,将变量 myRange 声明为 Range 对象,然后将其设置为 Sheet1 上的 A1:C10 单元格区域。指定另一个变量 answer 为对 myRange 应用 Min 函数的结果。最后,answer 的值就被显示在消息框中。 Sub UseFunction()
    Dim myRange As Range
    Set myRange = Worksheets("Sheet1").Range("A1:C10")
    answer = Application.WorksheetFunction.Min(myRange)
    MsgBox answer
End Sub
如果您使用的工作表函数需要一个单元格区域引用作为参数,则必须指定一个 Range 对象。例如:您可以用 Match 工作表函数搜索单元格区域。可以在工作表单元格中输入公式,如“=MATCH(9,A1:A10,0)”。但是,您应在 Visual Basic 过程中指定一个 Range 对象来获取相同的结果。 Sub FindFirst()
    myVar = Application.WorksheetFunction _
        .Match(9, Worksheets(1).Range("A1:A10"), 0)
 ......

阅读全文(2430) | 评论:0

用VB.net创建和打开word文档(2008-04-18 20:05:00)

摘要:Creating and opening Microsoft Word document from VB.NET
By  Mike Gold July 10, 2003
This article is being written in response to a couple inquiries on the question, "How do I open a word document from .NET?". I guess after people read my excel article, they were under the impression that I knew how to do this in Word. Luckily, after some hunting around on the forums and feedback from other C# Corner members I got the gist of it. Download Files WordFromDotNet.zip Sponsored by document.write('');
Looking for a book on Office and VB.NET? Here is our book Pro ASP.NET 2.0 E-Commerce in C# 2005
Price: US$ 30.00
Our Price: US$ 21.00
Description Pro ASP.NET 2.0 E-Commerce in C# 2005 takes you through the e-commerce web application development cycle, from conception to coding to deployment and maintenance. Browse mor......

阅读全文(7017) | 评论:0

通过Visual Basic .NET 在Office Excel 2003 中(2008-04-18 20:00:00)

摘要: 通过Visual Basic .NET 在Office Excel 2003 中添加 XML 功能  作者:Frank Ri…   来源:Microsoft     阅读13784人次,更新于2004-8-16  【字体:小 大】 摘要:通过编程方式添加 XML 功能可增强应用程序的实用性。文中的三个示例阐明了如何通过在 Microsoft Visual Basic .NET 中使用 XML 来达到在 Microsoft Office Excel 2003 中打开并使用文件的目的。 引言 Microsoft® Excel 2002 引入了使用可扩展标记语言 (XML) 格式打开文件的功能。在 Microsoft Office Excel 2003 中,这一功能大大增强。例如,您可以创建或打开工作簿,并将自定义 XML 架构附加到该工作簿,然后使用“XML 源”任务窗格来将单元格映射到架构的元素中。 XML 是一种标记语言,目前已发展到可通过人类和应用程序皆可读的格式在系统间传送信息。这一标记语言最初的设计目的是通过万维网传送信息。 格式正确的 XML 文件可通过用户界面或代码在 Excel 2003 中直接打开。格式正确的 XML 有以下特征: • 仅包含一个根元素,且名称唯一(不出现在文档的其他任何元素中)。 • 元素正确嵌套,元素之间无标记重叠。 • 所有元素标记都闭合。 • 元素的开始和结束标记大小写一致(XML 区分大小写)。 • 所有元素属性都在引号中,可以是双引号,也可以是单引号。 • 特殊字符(如 &、<、<)都已定义为内置实体(&amp;、<、>)。 使用 Microsoft Visual Basic® .NET,您可以利用 Excel 的 XML 功能将数据无缝传送至工作簿,从而显示选定格式和元素排列方式......

阅读全文(1931) | 评论:0

VB.NET结合EXCEL统计生产报表(2008-04-18 19:55:00)

摘要: .NET结合EXCEL统计生产报表  作者:tuenhai.…   来源:http://www.Tuenhai.com/    热       阅读1985人次,更新于2004-5-24  【字体:小 大】                 软件构思  
  软件构思是这样的:
  先在EXCEL里定制好名为《统计表》的样表(模版),,在样表中设置好各种格式,填写好固定项。
  在窗体上放很三个控件,两个DateTimePicker控件,用来选择开始统计时间和结束统计时间。一个Button以启动程序。
  软件欲实现的功能是:点击Button1,自动查找符合日期符合日期范围的生产计划工作表,然后利用SortedList统计各个办事处的计划数量和未完成数量,及各个产品型号的计划数量和未完成数量。再把SortedList的数据读出写到《统计表》中。
  这里要注意的是,各个生产报表格式必须规范统一,因为程序是按照固定单元格位置读取数据的。                SortedList类   除了具备VB.NET调用EXCEL的基础知识外,本例主要用到SortedList类。
  SortedList类表示键/值对的集合,这些键和值按键排序并可按照键和索引访问。
  SortedList 是 Hashtable 和 Array 的混合。当使用 Item 索引器属性按照元素的键访问元素时,其行为类似于 Hashtable。当使用 GetByIndex 或 SetByIndex 按照元素的索引访问元素时,其行为类似于 Array。
  SortedList 在内部维护两个数组以将数组存储到列表中;即,一个数组用于键,另一个数组用于相关联的值。每个元素都是一个可作为 DictionaryEntry 对象进行访问的键/值对。键不能为空引用(Visual Basic 中为 Nothing),但值可以。
  SortedList 的容量是列表可拥有的元素数。随着向 SortedList 中添加元素,容量通过重新分配按需自动增加。可通......

阅读全文(1699) | 评论:0

用VB.net通过编程建立一个Excel表(2008-04-18 19:49:00)

摘要:Creating an Excel Spreadsheet programmatically using VB.NET
By  G Gnana Arun Ganesh June 10, 2003
The Interoperability services make it very easy to work with COM Capable Applications such as Word and Excel. This article reveals using Excel from a managed application. Excel is the spreadsheet component of Microsoft Office 2000. The majority of Excel programmatic functionality is exposed through Automation via the type library Excel9.olb. The intention of this article is to express that a managed application can interrelate with Excel as a COM server. INTRODUCTION:

The Interoperability services make it very easy to work with COM Capable Applications such as Word and Excel. This article reveals using Excel from a managed application. Excel is the spreadsheet component of Microsoft Office 2000. The majority of Excel programmatic functionality is exposed through Automation via the type library Excel9.olb. The intention of this article is to express that a manag......

阅读全文(4050) | 评论:0

在 Visual Basic .NET 中使 Excel 自动运行以使用数组填充(2008-04-18 19:43:00)

摘要:要填充一个多单元格区域而又不是一次一个单元格地进行填充,可以将 Range 对象的 Value 属性设置为二维数组。同样,可通过使用 Value 属性一次检索多个单元格的值的二维数组。下面的步骤阐述了这一使用二维数组设置和检索数据的过程。 为 Microsoft Excel 生成自动化客户端 loadTOCNode(3, 'moreinformation'); 1. 启动 Microsoft Visual Studio .NET。 2. 在文件菜单上,单击新建,然后单击项目。从 Visual Basic 项目类型中选择 Windows 应用程序。默认情况下会创建 Form1。 3. 添加对 Microsoft Excel 对象库的引用。为此,请按照下列步骤操作: a. 在项目菜单上,单击添加引用。 b. 在 COM 选项卡上,找到 Microsoft Excel 对象库,然后单击选择。

注意:Microsoft Office 2003 包含主 Interop 程序集 (PIA)。Microsoft Office XP 不包含 PIA,但您可以下载 PIA。 有关 Office XP PIA 的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 328912 (http://support.microsoft.com/kb/328912/EN-US/) INFO:Microsoft Office XP PIA 可供下载 c. 在添加引用对话框中单击确定以接受您的选择。如果系统提示您为选定的库生成包装,请单击是。 4. 在视图菜单上,选择工具箱以显示工具箱。向 Form1 添加两个按钮和一个复选框。 5. 将复选框的 Name 属性设置为 FillWithStrings。 6. 双击 Button1。将出现该窗体的代码窗口。 7. 将以下代码添加到 Form1.vb 的顶部:Imports Microsoft.Office.Interop 8. 在代码窗口中,将以下代码 Private Sub Button1_Click(ByVal sender As System.Object,......

阅读全文(2084) | 评论:0