任何引号之间的字符串的正则表达式
Regular expression for string between any quotation mark
我想为以引号开头并以相同引号结尾的字符串编写正则表达式。它由字母数字词组成(例如 "PL",或 'CS',...)。
我考虑过 [^"].*[^"] ,但这只适用于 "" 这些。
我想要输出像
输入:"CS300"
输出:1 tSTRING
要么
输入:'a'
输出:1 tSTRING
谢谢
我的密码是
%{
int linecounter=1;
%}
%%
\n linecounter++;
(['"])[^'"]* printf("%d tSTRING \n", linecounter);
%%
main()
{
yylex();
}
使用否定字符 class 和反向引用:
(['"]).*?
解释:
(['"]) : matches a single or a double quote and keep it in group1
.*? : matches what is between
: backreference, same quote as in group 1
如果您的正则表达式风格不支持惰性量词:
(['"])[^'"]*
我写了 \"(\.|[^"])\" 和 \'(\.|[^'])\' 现在可以正常工作了。
我想为以引号开头并以相同引号结尾的字符串编写正则表达式。它由字母数字词组成(例如 "PL",或 'CS',...)。 我考虑过 [^"].*[^"] ,但这只适用于 "" 这些。 我想要输出像 输入:"CS300" 输出:1 tSTRING 要么 输入:'a' 输出:1 tSTRING
谢谢
我的密码是
%{
int linecounter=1;
%}
%%
\n linecounter++;
(['"])[^'"]* printf("%d tSTRING \n", linecounter);
%%
main()
{
yylex();
}
使用否定字符 class 和反向引用:
(['"]).*?
解释:
(['"]) : matches a single or a double quote and keep it in group1
.*? : matches what is between
: backreference, same quote as in group 1
如果您的正则表达式风格不支持惰性量词:
(['"])[^'"]*
我写了 \"(\.|[^"])\" 和 \'(\.|[^'])\' 现在可以正常工作了。