我正在为我的代码解析器制作正则表达式。我需要识别字符串文字,我做了这个正则表达式:
"([^"]|(\\"))+"?
我需要匹配这些案例:
"Some String
"another string \" string
"blah blah \" blah "
而这些不是:
"Some String"a
"blah blah \" blah "b
必须以“
开头之后应该有除“
之外的任何字符如果还有其他“,则必须在最后,或者必须使用 \
进行转义我的正则表达式doest工作:(我测试时:http://gskinner.com/RegExr/如果我有这个案例:
"asdasdsd\"sadasd
仅选择:
"asdasdsd\"
为什么?
非常感谢! :)
答案 0 :(得分:0)
你必须使用正则表达式吗?
如果您只是使用您选择的语言中的标准字符串解析工具,那么您的案例似乎会更简单明了。
答案 1 :(得分:0)
你需要反转或操作......这里是python
>>> print re.search(r'"(\\"|[^"])+','"asdasdsd\\"sadasd').group(0)
"asdasdsd\"sadasd
原因是,首先使用[^“],吸收反斜杠,然后在报价时失败
此
"([^"]|(\\"))+"?
变为
"(\\"|[^"])+"?
*注意:我不知道你是否需要'?'因为你没有指定语言。上面的python实现应该可以满足您的需求。