构建正则表达式

时间:2013-04-17 20:22:11

标签: regex parsing

我正在为我的代码解析器制作正则表达式。我需要识别字符串文字,我做了这个正则表达式:

"([^"]|(\\"))+"?

我需要匹配这些案例:

"Some String
"another string \" string
"blah blah \" blah "

而这些不是:

"Some String"a
"blah blah \" blah "b

必须以

开头

之后应该有除

之外的任何字符

如果还有其他,则必须在最后,或者必须使用 \

进行转义

我的正则表达式doest工作:(我测试时:http://gskinner.com/RegExr/如果我有这个案例:

"asdasdsd\"sadasd

仅选择:

"asdasdsd\"

为什么?

非常感谢! :)

2 个答案:

答案 0 :(得分:0)

你必须使用正则表达式吗?

如果您只是使用您选择的语言中的标准字符串解析工具,那么您的案例似乎会更简单明了。

答案 1 :(得分:0)

你需要反转或操作......这里是python

>>> print re.search(r'"(\\"|[^"])+','"asdasdsd\\"sadasd').group(0)
"asdasdsd\"sadasd

原因是,首先使用[^“],吸收反斜杠,然后在报价时失败

"([^"]|(\\"))+"?

变为

"(\\"|[^"])+"?

*注意:我不知道你是否需要'?'因为你没有指定语言。上面的python实现应该可以满足您的需求。