%%%
%%% 判断是否是字符串
%%% 从文件中提取中文
%%%
%%%
%%% %%-----------------------------------------------------------------------------------
%% 判断是否是字符串
is_string([]) -> yes;
is_string(List) -> is_string(List, non_unicode). is_string([C|Rest], non_unicode) when C >= , C =< -> is_string(Rest, non_unicode);
is_string([C|Rest], _) when C =< -> is_string(Rest, unicode);
is_string([], non_unicode) -> yes;
is_string([], unicode) -> unicode;
is_string(_, _) -> no. %%-----------------------------------------------------------------------------------
%% 从文件中提取中文
%% 假设src.txt内容为:
%% hello 自由!
%% 2012年5月22日
%% cheng run(Src) ->
{ok, Fd} = file:open(Src, [raw, binary]),
do_match(Fd). do_match(Fd) ->
Zh = do_match(Fd, , []),
file:write_file("zh.txt", lists:reverse(Zh)). do_match(Fd, LineNo, Acc) ->
case file:read_file(Fd) of
eof ->
Acc;
{ok, Line} ->
case re:run(Line, "[\x{4e00}-\x{9fff}]+",[unicode, global]) of
nomatch ->
do_match(Fd, LineNo + , Acc);
{match, MatchL} ->
L =
[begin
B = binary:part(Line, Pos, Len),
["L", erlang:integer_to_list(LineNo)," ", B, "\n"]
end || [{Pos, Len}] <- MatchL],
do_match(Fd,LineNo + , L ++ Acc)
end;
{error, _Reason} ->
io:format("read line error: ~w",[_Reason]),
Acc
end.

elang 字符处理的更多相关文章

  1. C语言 · 字符转对比

    问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等.比如 Beijing 和 Hebei 2:两个字符串不仅长度相 ...

  2. java字符乱码

    在java中处理字符时,经常会发生乱码,而主要出现的地方在读取文本文件时发生,或者是写入到文件中,在其他地方打开乱码. 如下例子: BufferedReader br = null; try { br ...

  3. java 字节流与字符流的区别

    字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作 ...

  4. Linux字符设备驱动框架

    字符设备是Linux三大设备之一(另外两种是块设备,网络设备),字符设备就是字节流形式通讯的I/O设备,绝大部分设备都是字符设备,常见的字符设备包括鼠标.键盘.显示器.串口等等,当我们执行ls -l ...

  5. [LeetCode] Longest Substring with At Least K Repeating Characters 至少有K个重复字符的最长子字符串

    Find the length of the longest substring T of a given string (consists of lowercase letters only) su ...

  6. Java版本:识别Json字符串并分隔成Map集合

    前言: 最近又看了点Java的知识,于是想着把CYQ.Data V5迁移到Java版本. 过程发现坑很多,理论上看大部分很相似,实践上代码写起来发现大部分都要重新思考方案. 遇到的C#转Java的一些 ...

  7. 字符型图片验证码识别完整过程及Python实现

    字符型图片验证码识别完整过程及Python实现 1   摘要 验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越 ...

  8. 全网络最正确的让 Linux 开机进入字符界面的方法及设置 FrameBuffer 分辨率的方法

    引言 这个标题有点长,是为了在标题中就把问题说清楚,以便搜索引擎能够把有需要的朋友准确地带到我这里来.目前在网络上,很多关于 Linux 方面的知识是过时的和错误的.我标题中指出的两个知识点就是其中的 ...

  9. EasyPR--开发详解(7)字符分割

    大家好,好久不见了. 一转眼距离上一篇博客已经是4个月前的事了.要问博主这段时间去干了什么,我只能说:我去“外面看了看”. 图1 我想去看看 在外面跟几家创业公司谈了谈,交流了一些大数据与机器视觉相关 ...

随机推荐

  1. YTU 2601: 熟悉题型——填空题(删除线性表节点)

    2601: 熟悉题型--填空题(删除线性表节点) 时间限制: 1 Sec  内存限制: 128 MB 提交: 357  解决: 212 题目描述 给出一串具体长度的数据,删除指定数据. 已经给出部分代 ...

  2. asp数据链接

    asp页面的中的数据库连接要进行唯一名称处理,不然页面中多个连接使用时,会出现连接莫名关闭.数据不能写入,但是页面也没报错.asp可以将有数据库连接的地方,提取成单独的函数.在每个方法单独命名数据库连 ...

  3. Model Browser

    http://www.entityframeworktutorial.net/model-browser-in-entity-framework.aspx We have created our fi ...

  4. MyEclipse 10离线安装PyDev插件

    PyDev for Eclipse, 经过测试,一般在线安装会失败(不能访问某些网站所致) 以下为离线安装步骤 1 下载 PyDev 2.8.2,  链接:http://sourceforge.net ...

  5. [HDOJ1015]Safecracker(DFS, 组合数学)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1015 这都能过…… #include <algorithm> #include <i ...

  6. jQuery_效果(隐藏和显示)

    一.jQuery hide() 显示和 show()隐藏 通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: <script type=" ...

  7. UVa 10935 (水题) Throwing cards away I

    直接用STL里的queue模拟即可. #include <cstdio> #include <queue> using namespace std; ; int discard ...

  8. setTimeOut() 和 setTimeInterval()

    setTimeOut()は.指定された時間「待ってから」指定された動作を行う関数です.setTimeOut():等待指定时间,执行指定方法. setTimeInterval()は.指定された時間「間隔 ...

  9. sql的 group by 分组;linq的 group by 分组

    先来看看 linq的,下面的一段linq 是 ,在 学生导入数据的时候,我们根据学生的手机号码和学生名称进行分组,如果有重复的,我们就筛选出来,用到了 linq的 group by,注意这里是new出 ...

  10. smarty分页模板(用模板语法写分页)

    分页是一个我们经常要用到的.比较基本的小功能,你可以通过定义一个方法或类来对它进行封装.重用.而本文则是通过利用smarty独有的语法,以模版的方式进行封装,从而达到同样的目的. 下面开始具体实现步骤 ...