求最简单的方法把一个串中非英文的都去掉

needanothercoder 2013-11-07 11:37:11
求最简单的方法把一个串中非英文的都去掉

如下串
s="@aBc34 k-"
想得到
"aBck"
...全文
110 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzw_0736 2013-11-07
  • 打赏
  • 举报
回复
Local s,Ln1,Ln2,Lc1,Lc2 s="@a-Bc34 k-" Ln1=Len(s) Lc1='' For i=1 To Ln1 Lc2=Substr(s,i,1) Ln2=Asc(Lc2) If Ln2=45 Or Between(Ln2,65,90) Or Between(Ln2,97,122) Lc1=Lc1+Lc2 Endif Endfor If Right(Lc1,1)=[-] Lc1=Left(Lc1,Len(Lc1)-1) Endif ? Lc1
needanothercoder 2013-11-07
  • 打赏
  • 举报
回复
补充一下,英文单词中的连字符-不能去掉 如下串 s="@a-Bc34 k-" 想得到 "a-Bck"
十豆三 2013-11-07
  • 打赏
  • 举报
回复
引用 7 楼 needanothercoder 的回复:
谢高手们回复,豆侠的我采用,只是他没有注意到-号,所以分数分一下, : )
-号 你不是不要吗
needanothercoder 2013-11-07
  • 打赏
  • 举报
回复
谢高手们回复,豆侠的我采用,只是他没有注意到-号,所以分数分一下, : )
十豆三 2013-11-07
  • 打赏
  • 举报
回复
思路: 1、先去掉英文 a - z,得到非英文串。 2、再去掉非英文掉。
十豆三 2013-11-07
  • 打赏
  • 举报
回复
s="@aBc34 k-" ?Chrtran(s,Chrtran(Lower(s),'abcdefghijklmnopqrstuvwxyz',''),'')
lygcw9602 2013-11-07
  • 打赏
  • 举报
回复
s = "@a-Bc34 k-" ?CHRTRAN(LEFT(s,RAT('-',s)-1),'0123456789@ ',[])
xuzuning 2013-11-07
  • 打赏
  • 举报
回复
s = "@a-Bc34 k-"
r = ''
len = LEN(s)
FOR i=1 to LEN(s)
  c = SUBSTR(s,i,1)
  IF UPPER(c) >= 'A' and UPPER(c) <= 'Z' or c = '-' and i < len
    r = r + c
  ENDIF
NEXT
? r

2,722

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧