由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
CS版 - 哪位帮忙看一下lex程序,涉及汉字编码,不知道问题出哪里。
相关主题
用LTL能表达(a b)*吗?请教个函数表达式
新手请教如何抓blog data的问题如何求解方程2*x^3+10*x^2=3?? (转载)
请教大牛个问题:工程上实现了个算法,能否发个paper玩玩 (转载)请各位推荐一本编程入门书给完全不懂cs的人看
[转载] 求教高手:如何用程序实现递归函数的一般表达式?问一个简单的C的问题
[转载] Ansi C Question解释程序怎么写?
[转载] How to minimize this variance?问一个C语言中整型和浮点运算的问题
MATLAB 的问题 (转载)问一个很简单的编程问题
表达式求值问题vostro 230=银河1?2
相关话题的讨论汇总
话题: u3000话题: include话题: lex话题: uff00话题: u32ff
进入CS版参与讨论
1 (共1页)
n********s
发帖数: 144
1

提取两标点符号之间的两个汉语词,如“你 好”,或者如。有 什么,

结果老错,应该是汉字正则表达式有问题,麻烦帮忙看一下:


%{
#include
#include
#include
#include
#include
%}

%%
[\u3001-\u303F]+[\u3000]*[\u2E80-\u2EFF\u2F00-\u2FDF\u31C0-\u31EF\u3200-\
u32FF\u3300-\u33FF\u3400-\u4DBF\u4DC0-\u4DFF\u4E00-\u9FBF\uF900-\uFAFF\uFE30
-\uFE4F\uFF00-\uFFEF]+[\u3000]+[\u2E80-\u2EFF\u2F00-\u2FDF\u31C0-\u31EF\
u3200-\u32FF\u3300-\u33FF\u3400-\u4DBF\u4DC0-\u4DFF\u4E00-\u9FBF\uF900-\
uFAFF\uFE30-\uFE4F\uFF00-\uFFEF]+[[\u3000]*[\u3001-\u303F]+ printf("%s",
yytext);
. ;
%%
Q**a
发帖数: 406
2
请问这是什么语言?

【在 n********s 的大作中提到】
:
: 提取两标点符号之间的两个汉语词,如“你 好”,或者如。有 什么,
:
: 结果老错,应该是汉字正则表达式有问题,麻烦帮忙看一下:
:
:
: %{
: #include
: #include
: #include

n********s
发帖数: 144
3
这是写的正则表达式,用lex做编译,可以生成c语言的源码,再进一步用c编译器编译
,可以生成机器代码。

【在 Q**a 的大作中提到】
: 请问这是什么语言?
Q**a
发帖数: 406
4
多谢指点,受教了

【在 n********s 的大作中提到】
: 这是写的正则表达式,用lex做编译,可以生成c语言的源码,再进一步用c编译器编译
: ,可以生成机器代码。

F******k
发帖数: 197
5
Don't deal with 汉字 in lex before and don't know the exact error you got,
compiling or runtime? But here are some thoughts you may take:
1) Does your lex return wide char string? I mean yytext from from lex.
2) You need printf(L"%s") or printf("ls") to print out wide char string
3) Could be some typo here [[\u3000]* (duplicated [[, you don't want strings like [[[ or [[\u3000\u3000[[[[, but I may be wrong here)

【在 n********s 的大作中提到】
: 这是写的正则表达式,用lex做编译,可以生成c语言的源码,再进一步用c编译器编译
: ,可以生成机器代码。

n********s
发帖数: 144
6
Thanks a lot,I will try .
runtime,I have gotten no expected output.
yes,there is a typo

strings like [[[ or [[\u3000\u3000[[[[, but I may be wrong here)

【在 F******k 的大作中提到】
: Don't deal with 汉字 in lex before and don't know the exact error you got,
: compiling or runtime? But here are some thoughts you may take:
: 1) Does your lex return wide char string? I mean yytext from from lex.
: 2) You need printf(L"%s") or printf("ls") to print out wide char string
: 3) Could be some typo here [[\u3000]* (duplicated [[, you don't want strings like [[[ or [[\u3000\u3000[[[[, but I may be wrong here)

1 (共1页)
进入CS版参与讨论
相关主题
vostro 230=银河1?2[转载] Ansi C Question
Intel为什么选用little endian?[转载] How to minimize this variance?
[5个包子] 请教C/C++读取文件的遇到的问题MATLAB 的问题 (转载)
面试中的space complexity表达式求值问题
用LTL能表达(a b)*吗?请教个函数表达式
新手请教如何抓blog data的问题如何求解方程2*x^3+10*x^2=3?? (转载)
请教大牛个问题:工程上实现了个算法,能否发个paper玩玩 (转载)请各位推荐一本编程入门书给完全不懂cs的人看
[转载] 求教高手:如何用程序实现递归函数的一般表达式?问一个简单的C的问题
相关话题的讨论汇总
话题: u3000话题: include话题: lex话题: uff00话题: u32ff