查看: 911|回复: 12
打印 上一主题 下一主题

[求助] ultraedit 正则表达式 求助!!

[复制链接]

该用户从未签到

44

主题

411

回帖

1987

积分

禁止发言

积分
1987

灌水大神章

跳转到指定楼层
1
发表于 2009-4-16 12:14:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在ultraedit里面正则表达式如何表示汉语拼音?也就是说如何表示   “ 逾期  yú qī;超过所规定的期限;  ”
里面的yú qī?

该用户从未签到

45

主题

1420

回帖

1万

积分

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

积分
10971

管理组专用章

2
发表于 2009-4-16 12:19:27 | 只看该作者
这个比较困难,需要找出更多的特征才行。 例如是不是一定是 空格+音标+分号?

该用户从未签到

44

主题

411

回帖

1987

积分

禁止发言

积分
1987

灌水大神章

3
 楼主| 发表于 2009-4-16 12:48:54 | 只看该作者

回复 2楼 rayman 的帖子

拼音前面可能有其他符号,但是拼音后面都有一个分号(中文输入状态下的分号)。

该用户从未签到

53

主题

474

回帖

2635

积分

解元

Rank: 5Rank: 5

积分
2635
4
发表于 2009-4-16 13:28:03 | 只看该作者
1,把中文分号全部替换为英文分号;
2,查找(\b\w*?[úī]\w*\b ?)+(?=;)
3,注意,请在2中方括号[ ]里面添加所有汉语拼音的声调。

该用户从未签到

44

主题

411

回帖

1987

积分

禁止发言

积分
1987

灌水大神章

5
 楼主| 发表于 2009-4-16 14:50:44 | 只看该作者
谢谢楼上。
其实我想做的是将像“ 逾期  yú qī;超过所规定的期限;  ”(没有双引号) 这种表达式里面的汉语拼音后面的“;”(分号)转换成<br/>. 因为他的解释里面也有 “;”(分号),不能通过简单的查找/替换的方法实现。所以想通过ultraedit的正则表达式将拼音后面的分号转换,而不转换其他地方的分号。
对正则表达式也不熟,希望高手能帮忙!
谢谢!

该用户从未签到

53

主题

474

回帖

2635

积分

解元

Rank: 5Rank: 5

积分
2635
6
发表于 2009-4-18 00:25:05 | 只看该作者
把([úī]);替换为$1<BR>

该用户从未签到

44

主题

411

回帖

1987

积分

禁止发言

积分
1987

灌水大神章

7
 楼主| 发表于 2009-4-18 23:07:58 | 只看该作者

回复 6楼 zcm1019 的帖子

我换成  ”\b\w*?$1<BR>\w*\b ?)+(?=;  ”(无双引号)提示搜索字符串未找到。
难道这里有错误吗?

该用户从未签到

53

主题

474

回帖

2635

积分

解元

Rank: 5Rank: 5

积分
2635
8
发表于 2009-4-19 16:21:56 | 只看该作者
是的,我说的替换是指在replace栏里面输入$1<BR>,在find栏里面输入([úī]);  其中要把所有可能出现在拼音末尾的字符添加到 [ ] 里面。

该用户从未签到

44

主题

411

回帖

1987

积分

禁止发言

积分
1987

灌水大神章

9
 楼主| 发表于 2009-4-19 18:19:15 | 只看该作者

回复 8楼 zcm1019 的帖子

谢谢!
youweiwu 该用户已被删除
10
发表于 2009-4-20 13:53:27 | 只看该作者
在正则表达式工具中测试zcm1019的表达式,可行;在ue中却不能通过,为何?
修改成这样就可以了——
正则表达式引擎:perl
查找:([āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑńňaoeiu]+?\w*?);
替换:\1<BR>
youweiwu 该用户已被删除
11
发表于 2009-4-20 14:07:07 | 只看该作者
原帖由 zcm1019 于 2009-4-16 13:28 发表
1,把中文分号全部替换为英文分号;
2,查找(\b\w*?[úī]\w*\b ?)+(?=;)
3,注意,请在2中方括号[ ]里面添加所有汉语拼音的声调。

修改成(\b\w*?[úī]\w* ?\b)+(?=;)在ue中仍不能通过。

该用户从未签到

44

主题

411

回帖

1987

积分

禁止发言

积分
1987

灌水大神章

12
 楼主| 发表于 2009-4-20 14:57:58 | 只看该作者
感谢zcm1019和youweiwu的帮忙!
按10楼的
正则表达式引擎:perl
查找:([āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑńňaoeiu]+?\w*?);
替换:\1

这个方法可以进行转换。
多谢两位!
youweiwu 该用户已被删除
13
发表于 2009-4-20 15:02:47 | 只看该作者
最近在学习正则表达式,拿来练练,不客气。