PB判断字符串是否有中文

合集下载

使用VBA判断单元格各字符是否为中文、英文、数字、符号的复杂代码

使用VBA判断单元格各字符是否为中文、英文、数字、符号的复杂代码

使用VBA判断单元格各字符是否为中文、英文、数字、符号的复杂代码Function IsLike(strText As String, pattern As String) As BooleanIsLike = strText Like patternEnd FunctionFunction IsChinese(strText As String) As BooleanDim i%, h$h = Hex(Asc(strText))If Asc(Left(h, 1)) >= 66 And Asc(Left(h, 1)) <= 70 ThenIsChinese = TrueEnd IfEnd FunctionFunction StringType(strText As String, Optional outPutType AsInteger = 1, Optional sumVar AsBoolean = False) As VariantDim strtemp As String, blnArray(1 To 5) As String, strPreType As Integer Dim intNum As Integer, startPos As Integer, intlen As Integer Dim strArray As Variant, strCompare1 As String, strCompare2 As String, dblSum As Double If sumVar = True And Not (outPutType <> 2 Or outPutType <> 4) Then sumVar = False For i = 1 To Len(strText)strtemp = Mid(strText, i, 1)If i > 1 Then strCompare1 = WorksheetFunction.Asc(Mid(strText, i - 1, 3))strCompare2 = WorksheetFunction.Asc(Mid(strText, i, 2))If WorksheetFunction.Dbcs(strtemp) = strtemp Thenstrtemp = WorksheetFunction.Asc(strtemp)If IsLike(strtemp, "[0-9]") Or IsLike(strCompare1, "[0-9].[0-9]") Or IsLike(strCompare2, "-[0-9]") ThenIf strPreType = 4 ThenblnArray(4) = Left(blnArray(4), Len(blnArray(4)) - 1) & intNumElseintNum = 1blnArray(4) = blnArray(4) & "- " & i & "/" & intNumEnd IfstrPreType = 4intNum = intNum + 1ElseIf IsLike(strtemp, "[a-zA-Z]") ThenIf strPreType = 5 ThenblnArray(5) = Left(blnArray(5), Len(blnArray(5)) - 1) & intNumElseintNum = 1blnArray(5) = blnArray(5) & "- " & i & "/" & intNumEnd IfstrPreType = 5intNum = intNum + 1ElseIf IsChinese(strtemp) ThenIf strPreType = 1 ThenblnArray(1) = Left(blnArray(1), Len(blnArray(1)) - 1) & intNumElseintNum = 1blnArray(1) = blnArray(1) & "- " & i & "/" & intNumEnd IfstrPreType = 1intNum = intNum + 1ElsestrPreType = 0End IfElseIf IsLike(strtemp, "[0-9]") Or IsLike(strCompare1, "[0-9].[0-9]") Or IsLike(strCompare2, "-[0-9]") ThenIf strPreType = 2 ThenblnArray(2) = Left(blnArray(2), Len(blnArray(2)) - 1) & intNumElseintNum = 1blnArray(2) = blnArray(2) & "- " & i & "/" & intNumEnd IfstrPreType = 2intNum = intNum + 1ElseIf IsLike(strtemp, "[a-zA-Z]") ThenIf strPreType = 3 ThenblnArray(3) = Left(blnArray(3), Len(blnArray(3)) - 1) & intNumElseintNum = 1blnArray(3) = blnArray(3) & "- " & i & "/" & intNumEnd IfstrPreType = 3intNum = intNum + 1ElsestrPreType = 0End IfEnd IfNextstrtemp = ""strArray = Split(blnArray(outPutType), "-")For i = 1 To UBound(strArray)intNum = InStr(1, strArray(i), "/")startPos = Mid(strArray(i), 1, intNum - 1)intlen = Mid(strArray(i), intNum + 1)If sumVar ThendblSum = dblSum + WorksheetFunction.Asc(Mid(strText, startPos, intlen))Elsestrtemp = strtemp & Mid(strText, startPos, intlen) & " "End IfNextIf sumVar ThenStringType = dblSum ElseIf Len(strtemp) ThenStringType = Left(strtemp, Len(strtemp) - 1)ElseStringType = ""End IfEnd IfEnd Function大连软件园1号楼及周边改造地块项目3#楼炉渣回填施工技术交底编制人: 马广军审核人: 邹旭2014年 11月 26 日大连软件园1号楼及周边改造地块项目技术交底记录工程名称大连软件园1号楼及周边改造地块项目施工单位大连亿达建设工程有限公司分项工程名称炉渣回填施工2014.11.26 交底日期交底提要回填,炉渣交底主要内容:一、主要材料3炉渣:宜采用烟煤炉渣,表观密度应为800kg/m以内;炉渣内不应含有机杂质和未燃尽的煤块,粒径不应大于40mm,且不可大于垫层厚度的1/2;炉渣粒径在5mm以下者,不得超过炉渣总体积的40%。

Pb函数大全及详解

Pb函数大全及详解

一、数组函数1、LowerBound()功能:得到指定数组第n维的下界。

语法:LowerBound ( array {, n } )参数:array:数组名。

n:数值类型,可选项,指定要得到数组哪一维的下界。

缺省值为1。

返回值:Long。

函数执行成功时返回array数组第n维的下界。

如果n的值超过了指定数组的最大维数,那么该函数返回-1。

如果任何参数的值为NULL,LowerBound()函数返回NULL。

示例:integer a[5], b[2,5]LowerBound(a) // Returns 1LowerBound(a, 1) // Returns 1LowerBound(a, 2) // Returns -1, a has only 1 dim LowerBound(b, 2) // Returns 1integer c[ ]LowerBound(c) // Returns 1c[50] = 900LowerBound(c) // Returns 1integer d[-10 to 50]LowerBound(d) // Returns - 102、UpperBound()功能:得到指定数组第n维的上界。

语法:UpperBound( array {, n } )参数:array:数组名。

n:数值类型,可选项,指定要得到数组哪一维的上界。

缺省值为1。

返回值:Long。

函数执行成功时返回array数组第n维的上界。

如果n的值超过了指定数组的最大维数,那么该函数返回-1。

如果任何参数的值为NULL,UpperBound()函数返回NULL。

示例:integer a[5], b[2,5]LowerBound(a) // Returns 1LowerBound(a, 1) // Returns 1LowerBound(a, 2) // Returns -1, a has only 1 dim LowerBound(b, 2) // Returns 1integer c[ ]LowerBound(c) // Returns 1c[50] = 900LowerBound(c) // Returns 1integer d[-10 to 50]LowerBound(d) // Returns - 10二、Blob(大二进制对象)函数Blob函数得到Blob数据类型的信息、完成数据类型转换以及操作Blob类型数据。

匹配汉字的正则

匹配汉字的正则

匹配汉字的正则匹配汉字的正则表达式是一种用于在文本中查找和匹配汉字的模式。

在中文文本处理和信息提取中,使用正则表达式可以方便地找到所需的汉字内容,实现各种文本处理任务。

首先,我们需要了解汉字的Unicode编码范围。

汉字的Unicode编码范围是从U+4E00到U+9FFF,这个范围包含了常用的汉字字符。

因此,我们可以使用正则表达式来匹配这个范围内的汉字。

在正则表达式中,我们可以使用Unicode编码的表示方式来匹配汉字。

例如,要匹配一个汉字,可以使用\u4E00来表示U+4E00这个Unicode编码。

如果要匹配多个汉字,可以使用\u4E00-\u9FFF来表示从U+4E00到U+9FFF的范围。

下面是一个示例的正则表达式,用于匹配一个或多个汉字:[\u4E00-\u9FFF]+这个正则表达式使用了方括号[]来表示一个字符集合,其中包含了从U+4E00到U+9FFF的范围。

加号+表示匹配前面的字符集合一次或多次。

使用这个正则表达式,我们可以方便地在文本中查找和匹配汉字。

例如,如果我们有一个字符串"我爱中文",我们可以使用这个正则表达式来匹配其中的汉字:import retext = "我爱中文"pattern = "[\u4E00-\u9FFF]+"result = re.findall(pattern, text)print(result)运行这段代码,我们会得到一个列表,其中包含了匹配到的汉字:"['我', '爱', '中文']"。

除了匹配汉字,我们还可以使用正则表达式来匹配其他汉字相关的内容,例如汉字的拼音。

在拼音的表示中,我们可以使用[a-zA-Z]来匹配英文字母,使用\u4E00-\u9FFF来匹配汉字。

例如,要匹配一个汉字和它的拼音,可以使用下面的正则表达式:([\u4E00-\u9FFF]+)\s+([a-zA-Z]+)这个正则表达式使用了圆括号()来表示一个分组,其中第一个分组用于匹配汉字,第二个分组用于匹配拼音。

汉字与字符的编码

汉字与字符的编码
对于英文来说,ascii码0-127就足以代码所有字符,对于中文而言,则必须使用两个字节(byte)来代表一个字符,具第一个字节必须大于127(所以我们有许程序判断中文都是以ascii码大于127作为条件) 以上用两个字节来表示一个中文的方式,在习惯上称为双字节(即DBCS:Double-ByteCharacterSet),而相对之下,英文的字符码就称为单字节SBCS(Single-ByteCharacterSet)。 虽然双字节(DBCS)足以解决中英文字符混合使用情况,但对于不同字符系统而言,必须经过字符码转换,非常麻烦。例如:中英文混合情况,日文,韩文等等。 为解决这个问题,Apple,Xerox,Microsoft,IBM,Novell,Borland...很多公司联合起来制订了一套可以适用于全世界所有国家的字符码,就称为Unicode Unicode的特点是: 不管哪一国的字符码均以两个Byte表示,例如"A"在Unicode则是16进制41和00的组合,即4100,高位41(转换为Ascii码即是65=A), WindowsNT/2000以Unicode来表示字符集,例如你可以看到MSSQLServer中产生的SQL文件可以选择是以Unicode来保存还是以普通格式来均无法正确读出其格式。 同时你还可以注意到95/98中API定义,许多名称结尾是有一个A的,例如 WriteProfileStringA 而在NT/2000操作系统中,提供了两套API,另外一个命令是WriteProfileStringW,以W结尾的API只适用于NT/2000。(在NT中使用以W结尾的API函数效率比A结尾的要快,因为省去了Unicode和DBCS/SBCS的转换过程) 这样我们经常要用到的判断字符串长度的函数,在NT和95/98下执行结果不同,如下:(下面代码适合于VB,ASP) 95/98中: len("abc中国")返回7(因为每个中文作为两个Ascii码来看) nt/2000中: len("abc中国")返回5(因为每个字符都作为一个Unicode来看) 明天将介绍如何在VB/NT环境下使len("abc中国")返回长度等于7 (PB不存在以上情况,除非你在NT下使用PB的Unicode版本,通常我们大家使用的均是PB的Windows32位版本)

使用VBA判断单元格各字符是否为中文、英文、数字、符号的复杂解读

使用VBA判断单元格各字符是否为中文、英文、数字、符号的复杂解读

Function IsLike(strText As String, pattern As String As BooleanIsLike = strText Like patternEnd FunctionFunction IsChinese(strText As String As BooleanDim i%, h$h = Hex(Asc(strTextIf Asc(Left(h, 1 >= 66 And Asc(Left(h, 1 <= 70 ThenIsChinese = TrueEnd IfEnd FunctionFunction StringType(strText As String, Optional outPutType As Integer = 1, Optional sumVar As Boolean = False As VariantDim strtemp As String, blnArray(1 To 5 As String, strPreType As IntegerDim intNum As Integer, startPos As Integer, intlen As IntegerDim strArray As Variant, strCompare1 As String, strCompare2 As String, dblSum As DoubleIf sumVar = True And Not (outPutType <> 2 Or outPutType <> 4 Then sumVar = FalseFor i = 1 To Len(strTextstrtemp = Mid(strText, i, 1If i > 1 Then strCompare1 = WorksheetFunction.Asc(Mid(strText, i - 1, 3strCompare2 = WorksheetFunction.Asc(Mid(strText, i, 2If WorksheetFunction.Dbcs(strtemp = strtemp Thenstrtemp = WorksheetFunction.Asc(strtempIf IsLike(strtemp, "[0-9]" Or IsLike(strCompare1, "[0-9].[0-9]" Or IsLike(strCompare2, "-[0-9]" ThenIf strPreType = 4 ThenblnArray(4 = Left(blnArray(4, Len(blnArray(4 - 1 & intNumElseintNum = 1blnArray(4 = blnArray(4 & "- " & i & "/" & intNumEnd IfstrPreType = 4intNum = intNum + 1ElseIf IsLike(strtemp, "[a-zA-Z]" ThenIf strPreType = 5 ThenblnArray(5 = Left(blnArray(5, Len(blnArray(5 - 1 & intNumElseintNum = 1blnArray(5 = blnArray(5 & "- " & i & "/" & intNumEnd IfstrPreType = 5intNum = intNum + 1ElseIf IsChinese(strtemp ThenIf strPreType = 1 ThenblnArray(1 = Left(blnArray(1, Len(blnArray(1 - 1 & intNumElseintNum = 1blnArray(1 = blnArray(1 & "- " & i & "/" & intNumEnd IfstrPreType = 1intNum = intNum + 1ElsestrPreType = 0End IfElseIf IsLike(strtemp, "[0-9]" Or IsLike(strCompare1, "[0-9].[0-9]" Or IsLike(strCompare2, "-[0-9]" ThenIf strPreType = 2 ThenblnArray(2 = Left(blnArray(2, Len(blnArray(2 - 1 & intNum ElseintNum = 1blnArray(2 = blnArray(2 & "- " & i & "/" & intNumEnd IfstrPreType = 2intNum = intNum + 1ElseIf IsLike(strtemp, "[a-zA-Z]" ThenIf strPreType = 3 ThenblnArray(3 = Left(blnArray(3, Len(blnArray(3 - 1 & intNum ElseintNum = 1blnArray(3 = blnArray(3 & "- " & i & "/" & intNumEnd IfstrPreType = 3intNum = intNum + 1ElsestrPreType = 0End IfEnd IfNextstrtemp = ""strArray = Split(blnArray(outPutType, "-"For i = 1 To UBound(strArrayintNum = InStr(1, strArray(i, "/"startPos = Mid(strArray(i, 1, intNum - 1intlen = Mid(strArray(i, intNum + 1If sumVar ThendblSum = dblSum + WorksheetFunction.Asc(Mid(strText, startPos, intlen Else strtemp = strtemp & Mid(strText, startPos, intlen & " "End IfNextIf sumVar ThenStringType = dblSumElseIf Len(strtemp ThenStringType = Left(strtemp, Len(strtemp - 1 ElseStringType = "" End IfEnd IfEnd Function。

Excel怎么判断某一列的值是否为汉字

Excel怎么判断某一列的值是否为汉字

Excel怎么判断某⼀列的值是否为汉字判断A1单元格是否有汉字:1. Sub test2()2. Dim reg, strA$3. strA = [A1]4. Set reg = CreateObject("vbscript.regexp")5. reg.Pattern = "[^\u4e00-\u9fa5]"6. reg.Global = True7. If reg.Replace(strA, "") <> "" Then MsgBox "有汉字"8. End Sub9.如果要对A列进⾏判断,就把A列所有的值串成个字符串,然后对其进⾏正则判断Sub test2()Dim reg, arr, d, n, marr = Range("a1:a" & Range("a65535").End(xlUp).Row) '把A:A列放⼊数组Set d = CreateObject("Scripting.Dictionary") '申明字典For n = 1 To UBound(arr)d(1) = d(1) & arr(n, 1) '把所有A列数据合并,并放⼊字典d(1)的item中NextSet reg = CreateObject("vbscript.regexp") '申明正则m = d.Item(1)reg.Pattern = "[^\u4e00-\u9fa5]" '正则汉字判断公式reg.Global = TrueIf reg.Replace(m, "") <> "" Then MsgBox "有汉字" '判断并返回结果End Sub。

pb考试题

pb考试题
4、在Powerbuilder中,对象的属性只能通过该对象的函数来修改。( )
5、对窗口上的控件进行齐整性操作,都是以第一个选中的控件为基准的。( )
6、控件中的Tag属性它本身并没有什么特定的用途。( )
三、选择题
1、按照窗口控件的功能特点,窗口控件可分为七类。复选框是属于 类别,多行编辑框是属于 类别,数据窗口控件是属于 类别。
2、 简述PowerScipt中的条件语句和Choose语句、For循环语句和Do循环语句的功能和使用场合。
四、编程题
1、求出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数的本身。例如:153就是一个“水仙花数”,用Messagebox函数显示结果。
2、求出从1到100之间所有的素数,用Messagebox函数显示结果。
A、按钮类 B、显示类 C、输入类 D、对象类 E、分组类 F、装饰类
2、要同时选择多个控件,采用的方法为 。
A、 在窗口中逐个单击要选择的控件。
B、 按快捷键Ctrl+A
C、 先按Shift键,然后逐个单击所要选择的控件。
D、 先按Ctrl键,然后逐个单击所要选择的控件。
3、 简述如何改变窗口中控件的焦点顺序。
4、 如何进行窗口中控件的布局调整?
5、 在PB中表示颜色的方法有哪几种?
练习题六
一、填空题
1、PowerBuilder提供了 、 、 、 、
5种数据源。
2、PowerBuilder的数据窗口提供了12种显示风格。与Excel电子表格的风格相似,行与列之间通过网格线分割的是 风格。常用于数据输入界面用的,一般一屏显示一条记录的是 风格。

php判断是否是汉字的方法

php判断是否是汉字的方法

php判断是否是汉字的方法PHP判断是否是汉字的方法介绍在开发过程中,我们经常需要判断一个字符是否为汉字。

本文将详细介绍使用PHP进行汉字判断的几种常用方法。

方法一:使用正则表达式1.使用preg_match()函数结合正则表达式进行判断。

2.正则表达式:/^[\x{4e00}-\x{9fa5}]$/u3.代码示例:function isChineseCharacter($char) {return preg_match('/^[\x{4e00}-\x{9fa5}]$/u', $char); }方法二:使用Unicode编码1.判断字符的Unicode编码是否在汉字范围内。

2.代码示例:function isChineseCharacter($char) {$unicode = mb_ord($char);return ($unicode >= 19968 && $unicode <= 40869);}方法三:使用系统函数1.判断字符的字节数是否大于1,来判断是否为汉字。

2.注意:此方法只适用于UTF-8编码。

3.代码示例:function isChineseCharacter($char) {return strlen($char) > 1;}方法四:使用字符集检测函数1.使用mb_detect_encoding()函数判断字符的字符集是否为UTF-8。

2.再判断字符的字节数是否大于1,来判断是否为汉字。

3.代码示例:function isChineseCharacter($char) {return strlen($char) > 1 && mb_detect_encoding($char, 'UTF-8', true);}方法五:使用Unicode范围判断1.判断字符的Unicode范围是否在汉字范围内。

pb与delphi数据类型对照

pb与delphi数据类型对照

pb与delphi数据类型对照摘要:1.引言2.pb 数据类型与delphi 数据类型的对照a.整数类型b.浮点类型c.字符串类型d.布尔类型e.日期和时间类型f.其他类型3.数据类型转换a.整数类型转换b.浮点类型转换c.字符串类型转换d.布尔类型转换e.日期和时间类型转换4.结论正文:在编程中,数据类型的选择和使用非常关键,不同的数据类型会影响程序的行为和性能。

对于那些从PB(PowerBuilder)转向Delphi 的程序员来说,了解两种语言的数据类型对照是非常有帮助的。

首先,我们来看一下PB 和Delphi 的整数类型对照。

PB 中的整数类型主要有Integer、Longint、ULongint 和Int64,而在Delphi 中,对应的数据类型分别是Integer、LongInt、UInteger 和Int64。

需要注意的是,PB 中的Longint 和ULongint 在Delphi 中实际上是相同的,都使用LongInt 类型。

接下来是浮点类型。

在PB 中,浮点类型主要有Single 和Double,而在Delphi 中,对应的数据类型是Single 和Double。

这两种语言的浮点类型在精度和范围上是一致的。

再看字符串类型。

PB 中的字符串类型是String,而Delphi 中的字符串类型是AnsiString。

需要注意的是,Delphi 还提供了UnicodeString 类型,用于处理Unicode 字符串。

在PB 中,字符串类型实际上是Unicode 字符串,但在Delphi 中,为了保持兼容性,PB 字符串类型被映射为AnsiString。

布尔类型在PB 和Delphi 中都是相同的,都是使用Boolean 类型。

日期和时间类型在PB 和Delphi 中也有所不同。

PB 中提供了Date 和Time 类型,而在Delphi 中,日期和时间类型被合并为一个Date 类型。

正则表达式筛选汉字

正则表达式筛选汉字

正则表达式筛选汉字正则表达式是一种强大的文本匹配工具,可以用于在文本中筛选汉字。

在本文中,我将介绍正则表达式的基本语法和使用方法,并给出一些实际应用的例子。

正则表达式由字符和操作符组成,可以用来描述文本模式。

在正则表达式中,可以使用特殊字符来匹配汉字。

例如,可以使用"[\u4e00-\u9fa5]"来匹配所有的汉字。

在使用正则表达式时,需要注意一些细节。

首先,正则表达式是大小写敏感的,所以要注意大小写的匹配。

其次,正则表达式中的特殊字符需要进行转义,例如"."表示任意字符,如果要匹配实际的"."字符,需要使用"\."进行转义。

下面是一些常用的正则表达式示例:1. 匹配一个或多个汉字:[\u4e00-\u9fa5]+2. 匹配一个或多个非汉字字符:[^\u4e00-\u9fa5]+3. 匹配以汉字开头的字符串:^[\u4e00-\u9fa5]4. 匹配以汉字结尾的字符串:[\u4e00-\u9fa5]$使用正则表达式可以方便地筛选出符合要求的汉字。

例如,可以用正则表达式筛选出一篇文章中的标题,然后将其输出。

在输出时,可以根据需要进行排版和格式化。

正则表达式还可以用于其他一些实际应用中。

例如,可以用正则表达式检查一个字符串是否符合某种格式要求,或者从一个大型文本中提取出特定的信息。

正则表达式是一种非常强大的文本处理工具,可以用于在文本中筛选汉字。

通过灵活运用正则表达式,我们可以更方便地处理和分析文本数据,提高工作效率。

希望本文对你理解和使用正则表达式有所帮助。

pb函数库之数据类型检查与转换函数

pb函数库之数据类型检查与转换函数

pb函数库之数据类型检查与转换函数Asc()功能得到字符串第一个字符的ASCII码整数值。

语法Asc ( string )参数string:要得到第一个字符ASCII值的字符串返回值Integer。

函数执行成功时返回string参数第一个字符的ASCII值,如果string参数的值为NULL,则Asc()函数返回NULL。

Char()功能将字符串的第一个字符、Blob变量的第一个值、或一个整数转换成字符。

语法Char ( n )参数n:字符串、Blob变量或整数,也可以是包含上述类型数据的Any类型变量返回值Char。

返回参数n的第一个字符。

如果n参数的值为NULL,则Char()函数返回NULL。

Dec()功能将字符串或Blob值转换成Decimal类型的值。

语法Dec ( stringorblob )参数stringorblob:string类型变量或Blob类型变量。

Blob类型变量时,把该变量第一个值转换为Decimal类型的值,其余部分被忽略。

stringorblob参数也可以是包含上述类型数据的Any类型变量返回值Decimal。

函数执行成功时返回相应的Decimal类型值。

如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Dec()函数返回0。

如果stringorblob参数的值为NULL,则Dec()函数返回NULL。

Double()功能将字符串或Blob值转换成Double类型的值。

语法Double(stringorblob)参数stringorblob:string类型变量或Blob类型变量。

Blob类型变量时,把该变量第一个值转换为Double类型的值,其余部分被忽略。

stringorblob参数也可以是包含上述类型数据的Any类型变量返回值Double。

函数执行成功时返回相应的Double类型值。

如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Double()函数返回0。

qt 汉字正则表达式

qt 汉字正则表达式

qt 汉字正则表达式在qt中,使用正则表达式处理汉字是一项非常常见的任务。

正则表达式是一种用于匹配和处理文本的强大工具,可以通过定义模式来查找和操作字符串。

在处理汉字时,我们可以使用正则表达式来验证、提取或替换特定的汉字或汉字组合。

例如,我们可以使用正则表达式来验证一个字符串是否只包含汉字:```cppQString str = "你好世界";QRegExp regExp("^[\u4e00-\u9fa5]+$");if (regExp.exactMatch(str)) {qDebug() << "字符串只包含汉字";} else {qDebug() << "字符串包含非汉字字符";}```在上面的例子中,我们使用了一个正则表达式`^[\u4e00-\u9fa5]+$`来匹配只含有汉字的字符串。

其中,`^`表示字符串的开始,`[\u4e00-\u9fa5]`表示匹配一个汉字,`+`表示匹配一个或多个前面的表达式,`$`表示字符串的结束。

如果字符串只包含汉字,则`exactMatch`函数返回`true`,否则返回`false`。

我们还可以使用正则表达式来提取字符串中的汉字:```cppQString str = "Hello, 你好世界";QRegExp regExp("[\u4e00-\u9fa5]+");int pos = 0;while ((pos = regExp.indexIn(str, pos)) != -1) {qDebug() << regExp.cap(0);pos += regExp.matchedLength();}```在上述例子中,我们使用了正则表达式`[\u4e00-\u9fa5]+`来匹配一个或多个汉字。

`indexIn`函数会返回第一个匹配的位置,`cap(0)`则返回完整的匹配字符串。

pb中取汉字串首字符的一个函数

pb中取汉字串首字符的一个函数

pb中取汉字串首字符的一个函数$PBExportHeader$uf_getfirstletter.srf$PBExportComments$ 返回给定汉字串的首字母串global type uf_getfirstletter from function_objectend typeforward prototypesglobal function string uf_getfirstletter (string as_inputstring)end prototypesglobal function string uf_getfirstletter (string as_inputstring);//Function name : uf_GetFirstLetter//Used to : 返回给定汉字串的首字母串,即声母串//Input Arguments: as_InputString - string , 给定的汉字串//Return Value : ls_ReturnString - String , 给定的汉字串的声母串,一律为小写//Notice : 1. 此方法基于汉字的国标汉字库区位编码的有效性,不符合此编码的// 系统此函数无效!// 2. 若汉字串含有非汉字字符,如图形符号或ASCII码,则这些非汉字字符// 将保持不变.//Sample : ls_rtn = uf_GetFirstLetter("中华人民共和国")// ls_rtn will be : zhrmghg//Scripts:char lc_FirstLetter[23] //存放国标一级汉字不同读音的起始区位码对应读音string ls_ch //临时单元string ls_SecondSecTable //存放所有国标二级汉字读音string ls_ReturnStr //返回串integer li_SecPosValue[23] //存放国标一级汉字不同读音的起始区位码integer i , jinteger li_SectorCode //汉字区码integer li_PositionCode //汉字位码integer li_SecPosCode //汉字区位码integer li_offset //二级字库偏移量//Set initial valueli_SecPosValue[]={1601,1637,1833,2078,2274,2302,2433,2594,2787,3106,3212,3472,3635,3722, 3730,3858,4027,4086,4390,4558,4684,4925,5249 }lc_FirstLetter[] = {"A", "B","C","D","E","F","G","H","J","K","L","M","N","O","P","Q","R","S","T","W","X","Y","Z"}ls_SecondSecTable="CJWGNSPGCGNE[Y[BTYYZDXYKYGT[JNNJQMBSGZSCYJSYY[PGKBZGY[YWJKGK LJYWKPJQHY[W[DZLSGMRYPYWWCCKZNKYYGTTNJJNYKKZYTCJNMCYLQLYPYQFQRPZSLWBTGKJFY XJWZLTBNCXJJJJTXDTTSQZYCDXXHGCK[PHFFSS[YBGXLPPBYLL[HLXS[ZM[JHSOJNGHDZQYKLGJHSG QZHXQGKEZZWYSCSCJXYEYXADZPMDSSMZJZQJYZC[J[WQJBYZPXGZNZCPWHKXHQKMWFBPBYDTJ ZZKQHYLYGXFPTYJYYZPSZLFCHMQSHGMXXSXJ[[DCSBBQBEFSJYHXWGZKPYLQBGLDLCCTNMAYDDK SSNGYCSGXLYZAYBNPTSDKDYLHGYMYLCXPY[JNDQJWXQXFYYFJLEJPZRXCCQWQQSBNKYMGPLBMJ RQCFLNYMYQMSQYRBCJTHZTQFRXQHXMJJCJLXQGJMSHZKBSWYEMYLTXFSYDSWLYCJQXSJNQBSC TYHBFTDCYZDJWYGHQFRXWCKQKXEBPTLPXJZSRMEBWHJLBJSLYYSMDXLCLQKXLHXJRZJMFQHXH WYWSBHTRXXGLHQHFNM[YKLDYXZPYLGG[MTCFPAJJZYLJTYANJGBJPLQGDZYQYAXBKYSECJSZNSLY ZHSXLZCGHPXZHZNYTDSBCJKDLZAYFMYDLEBBGQYZKXGLDNDNYSKJSHDLYXBCGHXYPKDJMMZNG MMCLGWZSZXZJFZNMLZZTHCSYDBDLLSCDDNLKJYKJSYCJLKWHQASDKNHCSGANHDAASHTCPLCPQ YBSDMPJLPZJOQLCDHJJYSPRCHN[NNLHLYYQYHWZPTCZGWWMZFFJQQQQYXACLBHKDJXDGMMY DJXZLLSYGXGKJRYWZWYCLZMSSJZLDBYD[FCXYHLXCHYZJQ[[QAGMNYXPFRKSSBJLYXYSYGLNSCMH ZWWMNZJJLXXHCHSY[[TTXRYCYXBYHCSMXJSZNPWGPXXTAYBGAJCXLY[DCCWZOCWKCCSBNHCPD YZNFCYYTYCKXKYBSQKKYTQQXFCWCHCYKELZQBSQYJQCCLMTHSYWHMKTLKJLYCXWHEQQHTQH[ PQ[QSCFYMNDMGBWHWLGSLLYSDLMLXPTHMJHWLJZYHZJXHTXJLHXRSWLWZJCBXMHZQXSDZP MGFCSGLSXYMJSHXPJXWMYQKSMYPLRTHBXFTPMHYXLCHLHLZYLXGSSSSTCLSLDCLRPBHZHXYYFH B[GDMYCNQQWLQHJJ[YWJZYEJJDHPBLQXTQKWHLCHQXAGTLXLJXMSL[HTZKZJECXJCJNMFBY[SFY WYBJZGNYSDZSQYRSLJPCLPWXSDWEJBJCBCNAYTWGMPAPCLYQPCLZXSBNMSGGFNZJJBZSFZYNDX HPLQKZCZWALSBCCJX[YZGWKYPSGXFZFCDKHJGXDLQFSGDSLQWZKXTMHSBGZMJZRGLYJBPMLMS XLZJQQHZYJCZYDJWBMYKLDDPMJEGXYHYLXHLQYQHKYCWCJMYYXNATJHYCCXZPCQLBZWWYTWB QCMLPMYRJCCCXFPZNZZLJPLXXYZTZLGDLDCKLYRZZGQTGJHHGJLJAXFGFJZSLCFDQZLCLGJDJCSNZL LJPJQDCCLCJXMYZFTSXGCGSBRZXJQQCTZHGYQTJQQLZXJYLYLBCYAMCSTYLPDJBYREGKLZYZHLYSZQ LZNWCZCLLWJQJJJKDGJZOLBBZPPGLGHTGZXYGHZMYCNQSYCYHBHGXKAMTXYXNBSKYZZGJZLQJD FCJXDYGJQJJPMGWGJJJPKQSBGBMMCJSSCLPQPDXCDYYKY[CJDDYYGYWRHJRTGZNYQLDKLJSZZGZ QZJGDYKSHPZMTLCPWNJAFYZDJCNMWESCYGLBTZCGMSSLLYXQSXSBSJSBBSGGHFJLYPMZJNLYYW DQSHZXTYYWHMZYHYWDBXBTLMSYYYFSXJC[DXXLHJHF[SXZQHFZMZCZTQCXZXRTTDJHNNYZQQ MNQDMMG[YDXMJGDHCDYZBFFALLZTDLTFXMXQZDNGWQDBDCZJDXBZGSQQDDJCMBKZFFXMK DMDSYYSZCMLJDSYNSBRSKMKMPCKLGDBQTFZSWTFGGLYPLLJZHGJ[GYPZLTCSMCNBTJBQFKTHBY ZGKPBBYMTDSSXTBNPDKLEYCJNYDDYKZDDHQHSDZSCTARLLTKZLGECLLKJLQJAQNBDKKGHPJTZQK SECSHALQFMMGJNLYJBBTMLYZXDCJPLDLPCQDHZYCBZSCZBZMSLJFLKRZJSNFRGJHXPDHYJYBZGDL QCSEZGXLBLGYXTWMABCHECMWYJYZLLJJYHLG[DJLSLYGKDZPZXJYYZLWCXSZFGWYYDLYHCLJSCM BJHBLYZLYCBLYDPDQYSXQZBYTDKYXJY[CNRJMPDJGKLCLJBCTBJDDBBLBLCZQRPPXJCJLZCSHLTOLJN MDDDLNGKAQHQHJGYKHEZNMSHRP[QQJCHGMFPRXHJGDYCHGHLYRZQLCYQJNZSQTKQJYMSZS WLCFQQQXYFGGYPTQWLMCRNFKKFSYYLQBMQAMMMYXCTPSHCPTXXZZSMPHPSHMCLMLDQFY QXSZYYDYJZZHQPDSZGLSTJBCKBXYQZJSGPSXQZQZRQTBDKYXZKHHGFLBCSMDLDGDZDBLZYYCXNN CSYBZBFGLZZXSWMSCCMQNJQSBDQSJTXXMBLTXZCLZSHZCXRQJGJYLXZFJPHYMZQQYDFQJJLZZNZ JCDGZYGCTXMZYSCTLKPHTXHTLBJXJLXSCDQXCBBTJFQZFSLTJBTKQBXXJJLJCHCZDBZJDCZJDCPRNP QCJPFCZLCLZXZDMXMPHJSGZGSZZQLYLWTJPFSYASMCJBTZKYCWMYTCSJJLJCQLWZMALBXYFBPNL SFHTGJWEJJXXGLLJSTGSHJQLZFKCGNNNSZFDEQFHBSAQTGYLBXMMYGSZLDYDQMJJRGBJTKGDHG KBLQKBDMBYLXWCXYTTYBKMRTJZXQJBHLMHMJJZMQASLDCYXYQDLQCAFYWYXQHZ"//Get it !ls_ReturnStr = ""For i=1 to Len(as_InputString) //依次处理as_InputString中每个字符ls_ch=Mid(as_InputString , i , 1)If Asc(ls_ch)<128 then // 非汉字ls_returnStr = ls_returnStr+ls_ch // 不变Else // 是汉字ls_ch = Mid(as_InputString , i , 2) // 取出此汉字li_SectorCode = Asc(Left(ls_ch, 1)) - 160 //区码li_PositionCode = Asc(Right(ls_ch, 1)) - 160 //位码li_SecPosCode = li_SectorCode*100 + li_PositionCode // 区位码If li_SecPosCode>1600 and li_SecPosCode<5590 then // 第一个字符For j=23 to 1 Step -1 // 找声母If li_SecPosCode>=li_SecPosValue[j] thenls_returnStr = ls_returnStr + lc_FirstLetter[j]ExitEnd ifNextElse // 第一个字符li_offset = (li_SectorCode - 56 ) *94 + li_PositionCode - 1 // 计算偏移量If li_offset>=0 and li_offset<=3007 then //二区汉字ls_returnStr = ls_returnStr + Mid(ls_SecondSecTable, li_offset , 1) //取出此字声母End ifEnd ifi = i+1 // 指向下一个汉字End ifNext // 处理完毕//Return resultReturn lower( ls_returnStr ) //返回as_InputString 的声母串end function。

powerbuilder 正则表达式

powerbuilder 正则表达式

正则表达式在PowerBuilder中的应用随着信息技术的发展,软件开发技术也在不断更新换代。

PowerBuilder作为一种老牌的可视化开发工具,自问世以来,一直备受开发者的青睐。

在PowerBuilder中,正则表达式作为一种强大的文本处理工具,也被广泛应用于字符串匹配、替换和提取等功能。

本文将重点介绍正则表达式在PowerBuilder中的应用,并且探讨在实际开发中如何更好地利用正则表达式来提高开发效率。

一、正则表达式的基本概念正则表达式是一种用来描述、匹配字符串的方法。

它是由普通字符以及特殊字符(元字符)组成的字符串。

通过使用正则表达式,我们可以轻松地检测一个字符串是否符合某种模式、获取匹配的字符串等操作。

在PowerBuilder中,我们经常会用到一些常用的正则表达式元字符,比如:1. ^:匹配输入字符串的开始位置。

2. $:匹配输入字符串的结束位置。

3. .:匹配任意单个字符。

4. *:匹配前面的子表达式零次或多次。

5. +:匹配前面的子表达式一次或多次。

6. ?:匹配前面的子表达式零次或一次。

7. []:匹配中括号内的任意一个字符。

8. ():标记一个子表达式的开始和结束位置。

二、PowerBuilder中的正则表达式函数PowerBuilder提供了一系列用于处理正则表达式的函数,开发者可以通过这些函数实现对字符串的匹配、替换和提取等操作。

其中,最常用的函数包括:1. Match():用于判断字符串是否与正则表达式匹配。

2. Replace():用于对字符串中与正则表达式匹配的部分进行替换。

3. Search():用于从字符串中查找与正则表达式匹配的内容。

4. ReplaceRegExpr():用于对字符串中所有与正则表达式匹配的部分进行替换。

5. MatchRegExpr():用于从字符串中匹配与正则表达式匹配的内容。

三、实例分析为了更好地理解正则表达式在PowerBuilder中的应用,下面我们通过实例来演示它的具体用法。

PB函数解析

PB函数解析

PB函数大全(查找方便)Abs()功能计算绝对值。

语法Abs ( n )参数n:要得到绝对值的数值型变量或表达式返回值返回值的数据类型与n的数据类型相同,函数执行成功时返回n的绝对值。

如果参数n的值为NULL,Abs()函数返回NULL。

Asc()功能得到字符串第一个字符的ASCII码整数值。

语法Asc ( string )参数string:要得到第一个字符ASCII值的字符串返回值Integer。

函数执行成功时返回string参数第一个字符的ASCII值,如果string参数的值为NULL,则Asc()函数返回NULL。

Beep()功能响铃n次(n超过10时只响10次)。

语法Beep ( n )参数n:数值类型,指定需要的响铃次数。

如果n的值大于10,那么计算机只响铃10次返回值Integer。

函数执行成功时返回1,发生错误时返回-1。

如果参数n的值为NULL,Beep()函数返回NULL。

Blob()Blob()功能将字符串转换成Blob类型数据。

语法Blob ( text )参数text:string类型,指定要转换的数据返回值Blob。

函数执行成功时返回转换后的Blob类型数据;如果text参数的值为NULL,则Blob()函数返回NULL。

BlobEdit()功能将任意类型的数据插入到Blob类型变量的指定位置。

语法BlobEdit ( blobvariable, n, data )参数blobvariable:Blob类型的已初始化变量,将向该变量中插入数据n:指定插入位置,有效值在1到4,294,967,295之间data:要插入到Blob类型变量中的数据,其数据类型可以是任何有效的PowerBuilder数据类型返回值Unsigned long。

函数执行成功时返回下次可以插入数据的位置;如果blobvariable变量中空间不够或任何参数的值为NULL,则BlobEdit()函数返回NULL。

正则判断 字符串是否有转义的方法-概述说明以及解释

正则判断 字符串是否有转义的方法-概述说明以及解释

正则判断字符串是否有转义的方法-概述说明以及解释1.引言1.1 概述字符串是编程中经常使用的数据类型之一,用于存储和操作文本信息。

在处理字符串时,有时需要对其中包含的特殊字符进行转义,以确保其被正确地解析和使用。

而正则表达式则是一种强大的模式匹配和搜索工具,常用于对字符串进行有效的处理和判断。

本文主要介绍如何使用正则表达式来判断字符串中是否包含转义字符的方法。

转义字符是由一个反斜线(\)加上特定字符组成的,用于表示一些特殊的字符或字符序列。

常见的转义字符包括\n(表示换行符)、\t(表示制表符)、\"(表示双引号)等。

在正则表达式中,转义字符同样需要进行转义,通常以反斜线(\)作为转义符。

这就意味着在正则表达式中,要匹配一个反斜线字符,需要使用两个反斜线(\\)进行表示。

通过比对字符串中是否包含反斜线字符,我们可以判断字符串是否包含转义字符。

本文将介绍如何使用正则表达式来实现这一功能,并提供示例代码加深理解。

首先,我们将会对正则表达式进行简要的介绍,以便读者对其有一个基本的了解。

随后,我们会详细解释转义字符的概念及其使用场景。

最后,我们将详细介绍如何使用正则表达式来判断字符串中是否包含转义字符的方法,并给出一些实际应用中的示例。

通过了解本文,读者将能够更好地理解正则表达式的基本概念、转义字符的含义和使用方法,并获得一些实用的技巧,用于在日常开发中判断字符串是否包含转义字符的需求。

接下来,我们将深入探讨正则判断字符串是否有转义的方法。

1.2文章结构1.2 文章结构本文主要讨论正则判断字符串是否有转义的方法。

为了更好地理解这个话题,本文将按照以下结构展开讨论:1. 引言:介绍文章的背景和意义。

2. 正文:包括以下几个方面的内容:- 正则表达式介绍:简要介绍正则表达式的概念和基本语法。

- 字符串转义的概念:解释什么是字符串转义以及为什么会需要对字符串进行转义。

- 正则判断字符串是否有转义的方法:详细介绍如何使用正则表达式来判断给定字符串是否包含转义字符。

pb函数库之字符串操作函数

pb函数库之字符串操作函数

Fill()功能建立一个由指定字符串填充的指定长度的字符串。

语法Fill ( chars, n )参数chars:string类型,指定用于重复填充的字符串n:long类型,指定由该函数返回的字符串的长度返回值String。

函数执行成功时返回n个字符的字符串,该字符串以参数chars 中的字符串重复填充而成。

如果参数chars中的字符个数多于n个,那么使用chars字符串的前n个字符填充函数返回的字符串;如果参数chars中的字符个数少于n个,那么使用chars 字符串反复填充,直到返回的字符串长度达到n为止。

如果任何参数的值为NULL,Fill()函数返回NULL。

--------------------------------------------------------------------------------Left()功能得到字符串左部指定个数的字符。

语法Left ( string, n )参数string:string类型,指定要提取子串的字符串n:long类型,指定子串长度返回值String。

函数执行成功时返回string字符串左边n个字符,发生错误时返回空字符串("")。

如果任何参数的值为NULL,Left()函数返回NULL。

如果n的值大于string字符串的长度,那么Left()函数返回整个string字符串,但并不增加其它字符。

--------------------------------------------------------------------------------LeftTrim()功能返回指定字符串删除了左部空格后的字符串。

语法LeftTrim ( string )参数string:string类型,指定要删除左部空格的字符串返回值String。

函数执行成功时返回删除了string字符串左部空格的字符串,发生错误时返回空字符串("")。

C#判断中文字符(字符串)

C#判断中文字符(字符串)

C#判断中⽂字符(字符串)在unicode 字符串中,中⽂的范围是在4E00..9FFF:CJK Unified Ideographs。

通过对字符的unicode编码进⾏判断来确定字符是否为中⽂。

protected bool IsChineseLetter(string input,int index){int code = 0;int chfrom = Convert.ToInt32("4e00", 16); //范围(0x4e00~0x9fff)转换成int(chfrom~chend)int chend = Convert.ToInt32("9fff", 16);if (input != ""){code = Char.ConvertToUtf32(input, index); //获得字符串input中指定索引index处字符unicode编码if (code >= chfrom && code <= chend){return true; //当code在中⽂范围内返回true}else{return false ; //当code不在中⽂范围内返回false}}return false;}⽅法⼆:public bool IsChina(string CString){bool BoolValue = false;for (int i = 0; i < CString.Length; i++){if (Convert.ToInt32(Convert.ToChar(CString.Substring(i, 1))) < Convert.ToInt32(Convert.ToChar(128))) {BoolValue = false;}else{return BoolValue = true;}}return BoolValue;}⽅法三:/**//// <summary>/// 判断句⼦中是否含有中⽂/// </summary>/// <param >字符串</param>public bool WordsIScn(string words){string TmmP;for (int i = 0; i < words.Length; i++){TmmP = words.Substring(i, 1);byte[] sarr = System.Text.Encoding.GetEncoding("gb2312").GetBytes(TmmP);if (sarr.Length == 2){return true;}}return false;}⽅法四:for (int i=0; i<s.length; i++){Regex rx = new Regex("^[\u4e00-\u9fa5]$");if (rx.IsMatch(s))// 是else// 否}正解!\u4e00-\u9fa5 汉字的范围。

非汉字正则

非汉字正则

非汉字正则
非汉字正则指的是不含汉字的正则表达式,用于匹配非中文字符的文本。

这种正则表达式可以用于许多场景,如密码强度校验、特殊字符过滤等。

在非汉字正则中,可以使用一些常见的元字符进行匹配,如d表示数字、w表示字母数字下划线、s表示空格和制表符等。

此外,还可以使用一些限定符进行匹配,如*表示0或多次匹配、+表示1或多次匹配、?表示0或1次匹配等。

例如,可以使用正则表达式^[^u4e00-u9fa5]*$匹配不含中文字符的文本。

其中,^表示匹配开头,$表示匹配结尾,[^u4e00-u9fa5]表示不匹配中文字符,*表示0或多次匹配。

在实际应用中,非汉字正则可以用于过滤用户输入的特殊字符,提高系统的安全性和稳定性。

同时,也可以用于密码强度校验,要求用户输入包含特殊字符或数字的密码,提高密码的安全性。

- 1 -。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档