楼主: playmore
4419 6

[问答] 请问如何用正则匹配中文 [推广有奖]

已卖:1645份资源

学科带头人

2%

还不是VIP/贵宾

-

TA的文库  其他...

R相关

经济学相关

金融工程

威望
1
论坛币
16356 个
通用积分
8.6697
学术水平
372 点
热心指数
394 点
信用等级
341 点
经验
15297 点
帖子
1194
精华
1
在线时间
1332 小时
注册时间
2007-1-11
最后登录
2025-12-1

初级学术勋章 初级热心勋章 中级热心勋章

楼主
playmore 发表于 2012-11-16 10:04:47 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
现在我有一个宏变量如下所示:
%let NameString=张三 李四 王五;
需要把这些名字都加上单引号,并用逗号分隔
即变成:'张三','李四','王五'
我用[\U4E00-\U9FA5]+,发现匹配不了
不知道该怎么匹配中文了
求教高手
谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:如何用 string Names tring RING 中文 如何

本帖被以下文库推荐

  • · MyLib|主题: 414, 订阅: 41
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

沙发
davil2000 发表于 2012-11-16 13:34:38
diffcult to deal with
R是万能的,SAS是不可战胜的!

藤椅
ziyenano 发表于 2012-11-16 14:41:04
%let NameString=张三 李四 王五;
%let name=%sysfunc(prxchange(s/[\S]+/'$0'/,-1,&namestring));/*有点投机,让非空白符代表汉字*/
%let name=%sysfunc(tranwrd(&name,' ',','));
%put &name;

板凳
scarfacetony 发表于 2012-11-16 15:33:39
有没有原始数据?可以在文本文档中处理,把空格替换成  ‘,’   就可以了
看了这个视频,我于是有了进股市的信心!
https://bbs.pinggu.org/thread-2787427-1-1.html

报纸
playmore 发表于 2012-11-16 17:24:54
scarfacetony 发表于 2012-11-16 15:33
有没有原始数据?可以在文本文档中处理,把空格替换成  ‘,’   就可以了
这个我也试过,在用','替换空格的时候总是会出现由于空格和逗号引起的问题,即用TRANWRD函数加%STR(','),会得到错误提示。例如,运行下述代码:
  1. %let a=ab cd;
  2. %let b=%SYSFUNC(TRANWRD(&a,%STR( ),%STR(',')));
  3. %put &b;
复制代码
会得到错误提示:
NOTE 49-169: The meaning of an identifier after a quoted string may change in a future SAS
             release.  Inserting white space between a quoted string and the succeeding
             identifier is recommended.
我的版本是9.1.3,不知道以后版本有改进没有
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

地板
playmore 发表于 2012-11-16 17:27:21
我最后解决了这个问题,是在网上搜到的

正则匹配中文汉字根据页面编码不同而略有区别:
GBK/GB2312编码:[\x80-\xff>]+ 或 [\xa1-\xff]+
UTF-8编码:[\u4e00-\u9fa5]

经我在SAS 9.1.2环境下测试,[\xa1-\xff]+可用。而我之前搜到[\u4e00-\u9fa5]不好用,可能是和我.sas文件的编码有关,默认的文件编码应该是GBK/GB2312的了。
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
Tigflanker + 5 + 3 + 3 + 3 观点很有启发

总评分: 论坛币 + 5  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

7
louis_bai 在职认证  发表于 2018-9-19 13:45:53
playmore 发表于 2012-11-16 17:27
我最后解决了这个问题,是在网上搜到的

正则匹配中文汉字根据页面编码不同而略有区别:
遇到了同样的问题,帮了大忙了,但是我仍然不知道如何判断自己SAS页码编码是GBK/GB2312编码还是UTF-8编码

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-6 06:35