PB判断字符串是否有中文
- 格式:docx
- 大小:21.43 KB
- 文档页数:1
使用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%。
一、数组函数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]+)这个正则表达式使用了圆括号()来表示一个分组,其中第一个分组用于匹配汉字,第二个分组用于匹配拼音。
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怎么判断某⼀列的值是否为汉字判断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。
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数据类型对照摘要: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]$使用正则表达式可以方便地筛选出符合要求的汉字。
例如,可以用正则表达式筛选出一篇文章中的标题,然后将其输出。
在输出时,可以根据需要进行排版和格式化。
正则表达式还可以用于其他一些实际应用中。
例如,可以用正则表达式检查一个字符串是否符合某种格式要求,或者从一个大型文本中提取出特定的信息。
正则表达式是一种非常强大的文本处理工具,可以用于在文本中筛选汉字。
通过灵活运用正则表达式,我们可以更方便地处理和分析文本数据,提高工作效率。
希望本文对你理解和使用正则表达式有所帮助。