开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 953|回复: 15
收起左侧

[已解决] 怎么判断一段文本只包含指定字符,不包含其他字符

 关闭 [复制链接]
结帖率:81% (85/105)
发表于 2023-4-28 16:27:56 | 显示全部楼层 |阅读模式   安徽省合肥市
13精币
我希望这一段文本只能由特顶字符串组成,怎么判断一个文本是否满足要求。

比如特定字符串:张三,李四,德古拉三角形,1,2,3,4,5,6,7,8,9,0,+,-,*,X,/,(,),除,乘,乘以,除以,加,减

现在将这些字符串随机挑选一些组成一个新字符串,我怎么判断这个字符串没有其他字符。

例子:张三乘以张三*李四123455+1+333-223                         这样,这个字符串满足要求
例子:张四乘以张三*李四123455+1+333-223                         这样,张四不是上面那些字符串,不满足要求
例子:德古拉三角形*张三*李四*(123455+1+333-223 )        这样,这个字符串满足要求
例子:1*德古拉李四三角形                                                    德古拉李四三角形不是上面那些字符串,不满足要求

最佳答案

查看完整内容

.版本 2 .支持库 spec .子程序 _按钮1_被单击 .局部变量 正则, 正则表达式类 .局部变量 i, 整数型 .局部变量 文本, 文本型 .局部变量 文本1, 文本型 .局部变量 文本2, 文本型 正则.创建 (“(张三|李四|德古拉三角形|1|2|3|4|5|6|7|8|9|0|\+|\-|\*|X|/|\(|\)|除以|乘以|乘|除|加|减)”, 编辑框1.内容, , , , ) .计次循环首 (正则.取匹配数量 (), i) 文本 = 文本 + 正则.取匹配文本 (i, ) .计次循环尾 () 调试输出 (文本) ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值
结帖率:100% (7/7)

签到天数: 24 天

发表于 2023-4-28 16:27:57 | 显示全部楼层   河北省沧州市
.版本 2
.支持库 spec

.子程序 _按钮1_被单击
.局部变量 正则, 正则表达式类
.局部变量 i, 整数型
.局部变量 文本, 文本型
.局部变量 文本1, 文本型
.局部变量 文本2, 文本型

正则.创建 (“(张三|李四|德古拉三角形|1|2|3|4|5|6|7|8|9|0|\+|\-|\*|X|/|\(|\)|除以|乘以|乘|除|加|减)”, 编辑框1.内容, , , , )
.计次循环首 (正则.取匹配数量 (), i)
    文本 = 文本 + 正则.取匹配文本 (i, )
.计次循环尾 ()
调试输出 (文本)
文本1 = 删全部空 (编辑框1.内容)
文本2 = 删全部空 (文本)
调试输出 (文本1 = 文本2)


补充内容 (2023-4-28 18:06):
你试了?

点评

第四个例子,结果是满足的,啊嘞   安徽省合肥市  发表于 2023-4-28 17:53

评分

参与人数 1荣誉 +1 收起 理由
项目部004 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:100% (7/7)

签到天数: 24 天

发表于 2023-4-28 16:31:16 | 显示全部楼层   河北省沧州市
逐字分割+寻找文本呗

点评

张四   福建省泉州市  发表于 2023-4-28 17:32
第四个例子,逐字分割不行的   安徽省合肥市  发表于 2023-4-28 16:45
回复

使用道具 举报

结帖率:100% (7/7)

签到天数: 24 天

发表于 2023-4-28 16:31:46 | 显示全部楼层   河北省沧州市
正则也行

点评

正则不知道怎么写   安徽省合肥市  发表于 2023-4-28 16:45
回复

使用道具 举报

结帖率:92% (12/13)

签到天数: 1 天

发表于 2023-4-28 16:53:38 | 显示全部楼层   河北省邯郸市
  
如果真 (例子1 = 例子)
' 回答正确
如果真 (例子2 = 例子)
' 回答正确
如果真 (例子3 = 例子)
' 回答正确


点评

调侃的好有情调。一看问问题的是大佬吓得我不敢回答了。   河北省邯郸市  发表于 2023-4-28 17:37
听君一席话,如听一席话   安徽省合肥市  发表于 2023-4-28 17:31
回复

使用道具 举报

结帖率:100% (7/7)

签到天数: 24 天

发表于 2023-4-28 17:00:31 | 显示全部楼层   河北省沧州市


补充内容 (2023-4-28 18:07):
下载例子,运行一下看看

法师 2.e

936.18 KB, 下载次数: 7

回复

使用道具 举报

结帖率:100% (1/1)
发表于 2023-4-28 17:12:27 | 显示全部楼层   安徽省六安市
用特定字符去匹配例子,匹配到的替换为空,最后判断例子是否有剩余,是不是有点潦草了
回复

使用道具 举报

结帖率:100% (18/18)

签到天数: 24 天

发表于 2023-4-28 17:42:01 | 显示全部楼层   福建省泉州市
fengshixiaohu 发表于 2023-4-28 17:12
用特定字符去匹配例子,匹配到的替换为空,最后判断例子是否有剩余,是不是有点潦草了 ...

是有点     
比如   被判断文本里面 有   <乘以>
而你先用  乘  匹配到   替换为空    那被判断文本里面原本的 <乘以>  就变成了  <以>
而特定字符里面没有  <以>    那最后得到的结果就不是正确的结果了
回复

使用道具 举报

结帖率:87% (34/39)
发表于 2023-4-28 20:41:05 | 显示全部楼层   四川省成都市
直接暴力求解,只需要判断匹配数量为1,且匹配文本=被匹配文本即可。用到了捕获组的概念
  
子程序名返回值类型公开备 注
正则_匹配批量整数型 本子程序采用【精易编程助手】生成。成功返回匹配的数量,失败返回0。
参数名类 型参考可空数组备 注
源文本文本型欲被匹配的文本
变量名类 型静态数组备 注
局_正则正则表达式类此类为精易模块里面的正则类,精易模块下载地址:http://ec.125.la/
局_匹配数整数型 
局_计次整数型 
局_子匹配数整数型 
如果真 (局_正则.创建 (“((张三)|(李四)|(德古拉三角形)|(1)|(2)|(3)|(4)|(5)|(6)|(7)|(8)|(9)|(0)|(\+)|(-)|(\*)|(X)|(/)|(\()|(\))|(乘以)|(除以)|(除)|(乘)|(加)|(减))+”, 源文本, 假, 假, ))
信息框 (“正则创建失败,请检查正则表达式语句是否有误!”, #错误图标, )
返回 (0)
局_匹配数 = 局_正则.取匹配数量 ()
如果真 (局_匹配数 = 0)
信息框 (“匹配失败,请检检查正则语句是否有误,数量:0”, #错误图标, )
返回 (0)
局_子匹配数 = 局_正则.取子匹配数量 ()
计次循环首 (局_匹配数, 局_计次)
如果 (局_子匹配数 > 0)
输出调试文本 (“匹配文本 ”到文本 (局_计次)“ 中的子匹配文本 1:” + 局_正则.取子匹配文本 (局_计次, 1, ))
输出调试文本 (“匹配文本 ”到文本 (局_计次)“ :” + 局_正则.取匹配文本 (局_计次, ))

计次循环尾 ()
返回 (局_匹配数)

回复

使用道具 举报

结帖率:100% (8/8)
发表于 2023-4-29 16:02:11 | 显示全部楼层   浙江省温州市
我的理解能力太差,表示看球不懂呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

关闭

精易论坛 - 有你更精彩上一条 /2 下一条

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表