| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1796 人关注过本帖
标题:求:如何判断中、英文标点符号?
只看楼主 加入收藏
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:351
专家分:335
注 册:2013-10-4
结帖率:100%
收藏
 问题点数:0 回复次数:17 
求:如何判断中、英文标点符号?
比方说,下边这一行字符串:

[这是中文标点“、”,That is 英文标点“;”,那么这个"This's a book."呢?]

混杂了中、英文的字符,扫描这一行字符串,如何判断第N个字符,是否标点符号?
搜索更多相关主题的帖子: 符号 字符串 字符 判断 英文 
2022-11-09 12:35
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
处理字符串的函数名尾带“C”的可以吧
2022-11-09 14:32
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:709
专家分:2848
注 册:2018-3-13
收藏(1)
得分:0 
程序代码:
cc = [这是中文标点“、”,That is 英文标点“;”,那么这个"This's a book."呢?]
For ii = 1 to Lenc(cc)
    c1 = Substrc(cc, ii, 1)
    c2 = Strconv(c1, 1)
    Do case
    Case Empty(c1)
        *-- 空格, TAB, 回车, 换行, 行进 字符
    Case c1 == c2
        If Strconv(c2, 2) == c1
            *--中文字符'
        Else
            ? ii, '全角符号', c1
        EndIf
    Otherwise
        If Between(c1, 'A','Z') or Between(c1, 'a','z')
            *-- 英文字符
        Else
            ? ii, '半角符号', c1
        EndIf
    EndCase
EndFor



[此贴子已经被作者于2022-11-9 15:16编辑过]


这家伙很懒,啥也没留下
2022-11-09 15:09
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏(1)
得分:0 
程序代码:
ccc = [这是中文标点“、”,That is 英文标点“;”,那么这个"This's a book."呢?]
FOR i=1 TO LENC(ccc)
    cc = SUBSTRC(ccc,i,1)
    ? cc,IIF(LEN(cc)==1,"单","双")
ENDFOR
2022-11-09 15:24
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:351
专家分:335
注 册:2013-10-4
收藏
得分:0 
厉害啦!真想不到Strconv()还有这妙用!


以下是引用csyx在2022-11-9 15:09:05的发言:

cc = [这是中文标点“、”,That is 英文标点“;”,那么这个"This's a book."呢?]
For ii = 1 to Lenc(cc)
    c1 = Substrc(cc, ii, 1)
    c2 = Strconv(c1, 1)
    Do case
    Case Empty(c1)
        *-- 空格, TAB, 回车, 换行, 行进 字符
    Case c1 == c2
        If Strconv(c2, 2) == c1
            *--中文字符'
        Else
            ? ii, '全角符号', c1
        EndIf
    Otherwise
        If Between(c1, 'A','Z') or Between(c1, 'a','z')
            *-- 英文字符
        Else
            ? ii, '半角符号', c1
        EndIf
    EndCase
EndFor

2022-11-09 16:58
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1790
专家分:3389
注 册:2012-2-29
收藏
得分:0 
学习啦,谢谢!
2022-11-10 06:47
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:351
专家分:335
注 册:2013-10-4
收藏
得分:0 
这个函数可能有问题,随便拿几个全角标点符号测试了一下,“—”和“·”判断失误,其他的暂未仔细测试。

以下是引用csyx在2022-11-9 15:09:05的发言:

function isSymbol(cc)
*cc = [这是中文标点“——”和“·”,“、”,That is 英文标点“;”,那么这个"This's a book."呢?]
For ii = 1 to Lenc(cc)
    c1 = Substrc(cc, ii, 1)
    c2 = Strconv(c1, 1)
    Do case
    Case Empty(c1)
        *-- 空格, TAB, 回车, 换行, 行进 字符
    return .t.
    Case c1 == c2
        If Strconv(c2, 2) == c1
            *--中文字符'
        return .f.
        Else
            ? ii, '全角符号', c1
        return .t.
        EndIf
    Otherwise
        If Between(c1, 'A','Z') or Between(c1, 'a','z')
            *-- 英文字符
        return .f.
        Else
            ? ii, '半角符号', c1
        return .t.
        EndIf
    EndCase
EndFor

2022-12-17 19:08
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
通常可打印的符号没几个,用个码表查好了。
2022-12-17 20:26
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:351
专家分:335
注 册:2013-10-4
收藏
得分:0 
以下是引用吹水佬在2022-12-17 20:26:20的发言:
通常可打印的符号没几个,用个码表查好了。


若想一网打尽的话,狠多,多到数唔晒(数不清)——

— ︱ ︵ ︶ ˉ ﹕ \ ﹏ ‖
……
……

狠难狠难穷举的。
2022-12-17 21:44
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
以下是引用cssnet在2022-12-17 21:44:15的发言:



若想一网打尽的话,狠多,多到数唔晒(数不清)——

— ︱ ︵ ︶ ˉ ﹕ \ ﹏ ‖
……
……

狠难狠难穷举的。

这样子还用分吗,有区分吗,都是“字”。所以,只有“单”或“双”之分,并没有什么“点”或“符”之分了。

[此贴子已经被作者于2022-12-17 23:00编辑过]

2022-12-17 22:58
快速回复:求:如何判断中、英文标点符号?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024329 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved