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)
|