找回密码
 立即注册
收起左侧

在QTextEdit中,如何获取文本里的单个字符?

8
回复
9656
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2021-1-11 19:15:02 显示全部楼层 |阅读模式
1Qter豆
我有一个QTextEdit的文本,里面是一些字符串啥的,我还另有一个空的字符数组,如果我想从QTextEdit文本中往我的字符数组拷贝字符【QTextEdit文本中有我不想要的某些字符,还有需要修改替换的字符】,我应该怎么做啊?今天试了一下午了,貌似在QTextEdit中找不到可以挨个处理字符的函数啊,所以来这里求教热心大佬,谢谢大家的阅读!

最佳答案

查看完整内容

记得结帖 ~
回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2021-1-11 19:15:03 显示全部楼层
记得结帖 ~
回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2021-1-12 08:45:47 显示全部楼层
如果你不想要一些字符还要替换一些字符,这个貌似采用正则表达式来完成效果不错,你可以往这方面查一下 ~
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2021-1-12 12:46:36 显示全部楼层
Since 发表于 2021-1-12 08:45
如果你不想要一些字符还要替换一些字符,这个貌似采用正则表达式来完成效果不错,你可以往这方面查一下 ~ ...

首先,我能力不强,对正则表达式不熟。
其次,实不相瞒,我做这个程序的主要目的是比较两段字符文本【一段是标准代码,一段是手抄代码,看看差异在哪里,因为我手抄别人的代码经常出现bug或报错的情况,而我目测找较累】,所以首先需要把两端文本都用同样的方式处理一下,比如去掉多余空格,去掉注释,花括号统统换行等等,然后再比较一下这两端文本的差异在哪里,我觉得我说的这种处理方式,只用正则表达式应该不能处理吧,所以我想弄个轮子自己处理一下
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2021-1-13 20:31:08 显示全部楼层
Since 发表于 2021-1-12 08:45
如果你不想要一些字符还要替换一些字符,这个貌似采用正则表达式来完成效果不错,你可以往这方面查一下 ~ ...

谢谢您,看来我对正则误解很深,我还以为她只是用来匹配的。今天发现也可以拿来替换用。
不过我这里遇到一点使用正则替换的小问题,想请教一下您:比如我有一个原始字符串【ABCD   XYZ】,然后我用的正则表达式是【[A-Z]\s+[A-Z]】,我想把原始字符串的匹配串都用一个空格来替换,可是替换之后的结果是【ABC YZ】,把那个D和X都去掉了,请问我该怎么做?

点评

正则表达式可以做查找、提取、替换等操作,你现在说的这个结果是正确的,上述写的正则表达式就是这么工作的,你现在问的是具体的正则表达式规则,这个没办法在这里解答,还是需要你去学习一下正则的语法规则,简单的  详情 回复 发表于 2021-1-14 09:03
回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2021-1-14 09:03:47 显示全部楼层
wenpinglaoyao 发表于 2021-1-13 20:31
谢谢您,看来我对正则误解很深,我还以为她只是用来匹配的。今天发现也可以拿来替换用。
不过我这里遇到 ...

正则表达式可以做查找、提取、替换等操作,你现在说的这个结果是正确的,上述写的正则表达式就是这么工作的,你现在问的是具体的正则表达式规则,这个没办法在这里解答,还是需要你去学习一下正则的语法规则,简单的用法,一两个小时足够了你学会了;【不能给你鱼,只能教你渔】
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2021-1-14 14:47:47 显示全部楼层
Since 发表于 2021-1-14 09:03
正则表达式可以做查找、提取、替换等操作,你现在说的这个结果是正确的,上述写的正则表达式就是这么工作 ...

嗯嗯,我就是想知道,在原始字符串(只能是大写字母与空格的组合),比如【ABCD   XYZ】或者别的什么字符串,我要达到简化空格的目的(不能出现连续的空格),那么正则应该怎么写啊?如果写成【[A-Z]\s+[A-Z]】,那么每次匹配的字符串都是【D   X】,这样替换的时候,把D和X也替换掉了(非我本意),我也在网上查了,是能查到用法,但是像我要求的这种用法查不到,如果您会的话,您能启发一下我吗(我只要一个正则表达式)?
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2021-1-15 17:14:28 显示全部楼层
Since 发表于 2021-1-14 09:03
正则表达式可以做查找、提取、替换等操作,你现在说的这个结果是正确的,上述写的正则表达式就是这么工作 ...

谢谢,这个问题可以不用回答了,我略懂了(实不相瞒我还开了别的帖子,在别的帖子那里已经找到了答案,如图所示)。如果要使用忽略式部分替换子字符串,那么那些需要被忽略免去替换的匹配的那些部分,要用圆括号给括起来,正则表达式会自动给那些匹配的圆括号内容标记上(按先后顺序),然后在替换的模板字符串里面,用形式如【\\1】、【\\2】...的样子嵌在模板字符串里,数字就是那些先后顺序的标记号,比如【\\1】,它表示匹配正则表达式的第一个圆括号内匹配内容。注意,必须要在模板字符串加上两个反斜杠【\\】,而不是一个!

写在这里,巩固记忆

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2021-1-24 12:16:30 显示全部楼层
这个论坛不太会操作,前两天家里一直在忙,不好意思。
回复

使用道具 举报

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

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了