火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 2299|回复: 6
打印 上一主题 下一主题

[视窗] 通过正则如何将满足条件的字母进行替换?

[复制链接]

70

主题

497

帖子

4425

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4425
跳转到指定楼层
楼主
发表于 2022-9-6 02:24:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
手里有这样一个俄语名录,现在要通过正则如何将满足条件的字母进行替换
要求是 文字里只要有字母【эк】 就将该字符串中的 【ө】字母替换成【о】 、【й】字母替换成 【и】、【ә】字母替换成【а】、【і 】字母换成【ы】

эконөмйәліқ эконөмйст эконөмйст-сарапшы эконөмйсцімәқ эконөмйст-ғалым эконөмйкә эконөмйкәлі эконөмйкәліқ эконөмйкәліқ-тұрмыстық эконөмйкәліқ-технйкәліқ эконөмйкәліқ-саяси эконөмйкәліқ-қаржылық

сйнэколөгя
сйнэколөгйәліқ
геөэконөмйкә
геөэконөмйкәліқ
әутэколөгя


我要的是正则替换方式,谢谢!!!
正则!!
回复

使用道具 举报

439

主题

1万

帖子

3万

积分

超级版主

Rank: 8Rank: 8

积分
36709
沙发
发表于 2022-9-6 08:23:52 | 只看该作者
资料少,找了半天没找到怎么替换,,,

表达式到知道怎么写。。  й|я  用| 分割就可以匹配到多个。。但是替换公式不知道怎么写。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

4

主题

63

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
板凳
发表于 2022-9-6 10:05:50 | 只看该作者
效果是出来了,但估计和你想象中代码的不太一样,但是封装一下应该还是可以用的

整体思路是分割名单得出每个名字
名字中查找【эк】,找到之后对该名字进行一系列的字符替换,否则就不替换,每次处理后或者不符合条件的名字都按照原顺序放好,最终就算是替换完成了
方法中所有的匹配文本都是基于正则的,可以在中间加入正则的通配符,虽然流程有点长,但只要的关键参数封装一下就可以作为一个动态处理数据的子程序用,以后用的话只要传入对应的文本和正则表达式参数就行了








稍后等于永不
回复

使用道具 举报

4

主题

63

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
地板
发表于 2022-9-6 10:30:37 | 只看该作者
如果希望程序只接受一段文字就能替换的话可以自己写一套自定义的文本替换规则,使用自己封装的方法进行解析出对应的数据
比如说你帖中的要求可以优化称以下字符串,这种情况下写一套字符串处理就可以把其中需要匹配和替换的关键字符串取出,后续就是方法套方法自动调用就行了
不过这种优化成字符串的形式虽然调用起来看着简洁,封装就麻烦一点了,还要考虑特殊情况,比方说下面的例子中的问号竖线和冒号其实可以换成偏门国家的语言字符这样可以防止和文本的内容重复

  1. эк?ө:о|й:и|ә:а|і:ы
复制代码
稍后等于永不
回复

使用道具 举报

70

主题

497

帖子

4425

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4425
5#
 楼主| 发表于 2022-9-6 13:10:31 | 只看该作者
谢谢,楼上的,我只是想要这个的正则表达式
回复

使用道具 举报

4

主题

63

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
6#
发表于 2022-9-10 12:15:38 | 只看该作者
研究了一下,是要这种效果吗?


  1. ((?=[^\w \r\n]*?эк)(ө)|(?<=эк[^ \r\n]*)(ө))
复制代码





稍后等于永不
回复

使用道具 举报

4

主题

63

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
7#
发表于 2022-9-10 12:18:46 | 只看该作者
楼主还有没有正则表达式的需求了,最近在下刚好在学正则表达式,对这类略复杂的题目很感兴趣,方便的话可以多发点吗?
稍后等于永不
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-5-19 07:45 , Processed in 0.084968 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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