| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6554 人关注过本帖
标题:怎么在vfp表中筛选名字中带有字符,字母,数字等等的名字
只看楼主 加入收藏
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
示例:
CREATE CURSOR tt (xm c(10))
INSERT INTO tt VALUES ("河南\省")
INSERT INTO tt VALUES ("河-北省")
INSERT INTO tt VALUES ("北,京市")
INSERT INTO tt VALUES ("上海市")
re = Createobject("VBScript.RegExp")
re.Global = .T.
re.Ignorecase = .T.
re.Pattern = "[^\u4e00-\u9fa5]" && 匹配非汉字以外的所有字符
BROWSE FOR xm!=re.replace(xm,"")

修改后的代码不需要在表中新增一个字段,只要不符合条件的内容都能过滤出来

*!*!*!*!*!*
CREATE CURSOR tt (xm c(10),xm1 c(10))
INSERT INTO tt (xm) VALUES ("河南\省")
INSERT INTO tt (xm) VALUES ("河-北省")
INSERT INTO tt (xm) VALUES ("北,12京市")
INSERT INTO tt (xm) VALUES ("上海市")
INSERT INTO tt (xm) VALUES ("西安市")
re = Createobject("VBScript.RegExp")
re.Global = .T.
re.Ignorecase = .T.
re.Pattern = "[^\u4e00-\u9fa5]+"
BROWSE FOR xm!=re.replace(xm,"")
REPLACE ALL xm1 WITH re.replace(xm,"") && 替换除汉字以外所有的字符为空,结果显示在 XM1 字段中。
BROWSE

[此贴子已经被作者于2017-11-17 20:22编辑过]


坚守VFP最后的阵地
2017-11-17 18:24
yjmgjr
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2017-11-17
收藏
得分:0 
回复 20楼 sdta
谢谢大神!!感谢
2017-11-17 18:52
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
问题解决了?

坚守VFP最后的阵地
2017-11-17 18:56
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 

大师:
*!*!*!*!*!*
CREATE CURSOR tt (xm c(10),xm1 c(10))
INSERT INTO tt (xm) VALUES ("河南\省")
INSERT INTO tt (xm) VALUES ("河-北省")
INSERT INTO tt (xm) VALUES ("北,12京市")
INSERT INTO tt (xm) VALUES ("上海市")
INSERT INTO tt (xm) VALUES ("西安市")
[/color]re = Createobject("VBScript.RegExp")   &&&能解释吗
re.Global = .T.                        &&&  能解释吗
re.Ignorecase = .T.                     &&& 能解释吗?
re.Pattern = "[^\u4e00-\u9fa5]+"       &&& 能解释吗?
BROWSE FOR xm!=re.replace(xm,"")       [color=#FF0000] &&& 能解释吗?
REPLACE ALL xm1 WITH re.replace(xm,"") && 替换除汉字以外所有的字符为空,结果显示在 XM1 字段中。
BROWSE [/quote]
2017-11-17 21:19
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
创建正则表达式对象
Re=Createobject("VBScript.RegExp")
常用属性及方法
一、属性:
1、Global属性:指明模式是匹配整个字符串中所有与之相符的地方,还是只匹配第一次出现的地方。
  语法:Object.Global [= Value ]
        Value:有两个值.T.或.F.
      .T.:对整个字符串进行查找。
      .F.:默认值,只匹配第一次出现的地方

2、IgnoreCase属性:指明模式匹配是否大小写敏感。
    语法:Object.IgnoreCase [= value ]
        Value:有两个值.T.或.F.
      .T.:大小写不敏感。
      .F.:默认值,大小写敏感。

3、Pattern属性:设置或返回用于搜索的正则表达式。
    语法:Object.Pattern[= "searchstring"]
    "searchstring":需要搜索的正则字符串表达式。

4、 MultiLine属性:只影响元字符 ^ 和 $ 的意义。
    语法:Object.MultiLine [= value ]
        Value:有两个值.T.或.F.
      .F.:默认值,无论目标文本有多少行,整个文本中则只有一个开始位置(^ 表示开始位置)和一个结束位置($ 表示文本结束位置)。
      .T.:目标文本有多少行,就有多少个开始位置和结束位置,^ 和 $ 分别表示每一行的行首和行尾位置。

二、方法
1、Replace方法:用于替换在正则表达式搜索中找到的文本。
    语法:object.Replace(string, string2)
    用 string2 替换 string 。

2、Test方法:对字符串执行正则表达式搜索,并返回一个逻辑值说明匹配是否成功。
   语法:object.Test(string)
   如果匹配成功,Test方法返回 .T. ;否则返回 .F. 。

上面的属性、方法都是固定的,关键是正则表达式的写法。

[此贴子已经被作者于2017-11-19 19:37编辑过]


坚守VFP最后的阵地
2017-11-17 21:39
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 
回复 25楼 sdta
谢谢,珍藏
2017-11-17 21:50
yxb82310
Rank: 1
等 级:新手上路
帖 子:19
专家分:3
注 册:2015-10-29
收藏
得分:0 
收藏
2018-03-09 17:22
厨师王德榜
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:199
帖 子:991
专家分:4966
注 册:2013-2-16
收藏
得分:0 
回复 8楼 yjmgjr
估计你是做毕业设计?或者完成作业吧?学校里的教材不会讲正则的,所以不知道很正常,但是如果你将来专业写代码,是一定会接触到正则的,早学习比晚学习好。
2018-03-12 09:37
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
re = Createobject("VBScript.RegExp")
re.Global = .T.
re.Ignorecase = .T.
re.Pattern = "\d" && 匹配数字0-9以外的所有字符
cStr="中1国0人9"
?re.replace(cStr, "")

坚守VFP最后的阵地
2018-03-15 18:26
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
今天翻到这个帖子,发现还有一种办法
BROWSE FOR LEN(ALLTRIM(xm)) - LENC(ALLTRIM(xm)) * 2 # 0

[此贴子已经被作者于2021-3-14 19:00编辑过]


坚守VFP最后的阵地
2021-03-14 16:40
快速回复:怎么在vfp表中筛选名字中带有字符,字母,数字等等的名字
数据加载中...
 
   



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

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