我试图从MFC的* .rc文件中提取每种语言的信息。Perl的正则表达式匹配正在工作
所以,我发现“LANGUAGE LANG_([\s\S]*?)#endif(.*)\n/{1,}
”在http://regexpal.com/
:
LANGUAGE LANG_Language1, SUBLANG_XXX
#pragma code_page()
:
END
#endif // Language1 resources
/////////////////////////////////////////////////////////////////////////////
:
LANGUAGE LANG_Language2, SUBLANG_XXXX
#pragma code_page()
:
END
#endif // Language2 resources
/////////////////////////////////////////////////////////////////////////////
:
工作下列文本,也,我已设定要找到通过这样的Perl的正则表达式。
$rc_file = read_file($ARGV[0]);
@LANG = ($rc_file =~ /LANGUAGE LANG_([\s\S]*?)#endif(.*)\n\/{1,}/g);
我希望每个@LANG元素的形式都像下面的文本一样。
LANGUAGE LANG_Language1, SUBLANG_XXX
#pragma code_page()
:
END
#endif // Language1 resources
/////////////////////////////////////////////////////////////////////////////
但是,我收到这两种类型。 偶数元件是这样的,
Language1, SUBLANG_XXX
#pragma code_page()
:
END
和奇数编号的元件是这样的。 //语言1资源
我不明白我使用了相同的正则表达式,但它返回的时候没有一些字符串。 我应该用另一种格式包装正则表达式吗?还是我做错了?
您是否尝试检查$ 1和$ 2捕获组中的内容? – AlfredoVR
是的。我想知道为什么返回的模式不包括一些子字符串。 –