【发布时间】:2014-02-25 10:11:13
【问题描述】:
如上所述,我正在尝试构建一个正则表达式来获取所有法语字母,包括重音字母。不幸的是,重音字母一直给我错误。模式([a-zA-Z-âàçèé])+ 格式正确吗?任何帮助将不胜感激。
这是我的 Lex 代码示例:
%{
uses lexlib;
%}
%%
"Exit:"
begin
halt;
end;
" " ;
([a-zA-Z-âàçèé])+
begin
writeln('word : ' + yytext);
end;
. begin
writeln('errorrrrrrrrrrrrrr : ' + yytext);
end;
\n ;
%%
begin
if yylex=0 then ;
end.
【问题讨论】:
-
-用于定义字符范围(例如:A-Z) -
([a-zA-Z-âàçèé])+,如果您打算将 Z 和 â 之间的破折号视为文字,则应该可以。有什么错误?尝试取出破折号
[a-zA-Zâàçèé] -
尝试将
-交换到字符类的末尾。 -
可能是它只读取 7 位 ascii,屏蔽掉高位。也许它是一个问题。将重音字符一个一个取出来进行测试。
-
([â])+ 即使这个正则表达式也不起作用。它显示:errorrrrrrrrrrrrrrr:❄
标签: regex