假设我想表示\q (或任何其他特殊的“反斜杠转义字符”)。也就是说,我希望匹配\q而不是\\q,因为后者是一个后跟q的反斜杠转义反斜杠。但是\\\q会匹配,因为它是一个反斜杠转义的反斜杠,后跟一个反斜杠转义的q。(嗯,它将匹配末尾的\q,而不是开头的\\。)
我知道我需要一个负向后视,但它们总是把我的头搞得乱七八糟,特别是因为反斜杠本身必须在regexp中转义。
发布于 2008-09-11 15:12:47
Leon Timmermans找到了我要找的东西我想为那些后来来这里的人增加一个小的改进:
/(?<!\\)(?:\\\\)*\\q/(\\\\)组开头的附加?:使其不会保存到任何匹配数据中。我无法想象这样的场景,我想要保存它的文本。
发布于 2008-09-11 13:52:05
Now You Have Two Problems。
只要编写一个简单的解析器即可。如果正则表达式现在让你头昏脑胀,那就等一个月吧。
发布于 2008-09-11 14:24:01
最好的解决方案是进行您自己的字符串解析,因为正则表达式并不真正支持您要做的事情。(rep @Frank Krueger如果你这样说,我只是重复他的建议)
然而,我确实尝试了一个排他性的正则表达式。这将匹配所有不符合"\“后跟字符的条件的字符串。
(?:[\\][\\])(?!(([\\](?![\\])[a-zA-Z])))https://stackoverflow.com/questions/56554
复制相似问题