首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于字符前未转义的反斜杠,正确的正则表达式是什么?

对于字符前未转义的反斜杠,正确的正则表达式是什么?
EN

Stack Overflow用户
提问于 2008-09-11 13:42:35
回答 3查看 13.5K关注 0票数 11

假设我想表示\q (或任何其他特殊的“反斜杠转义字符”)。也就是说,我希望匹配\q而不是\\q,因为后者是一个后跟q的反斜杠转义反斜杠。但是\\\q会匹配,因为它是一个反斜杠转义的反斜杠,后跟一个反斜杠转义的q。(嗯,它将匹配末尾的\q,而不是开头的\\。)

我知道我需要一个负向后视,但它们总是把我的头搞得乱七八糟,特别是因为反斜杠本身必须在regexp中转义。

EN

回答 3

Stack Overflow用户

发布于 2008-09-11 15:12:47

Leon Timmermans找到了我要找的东西我想为那些后来来这里的人增加一个小的改进:

代码语言:javascript
复制
/(?<!\\)(?:\\\\)*\\q/

(\\\\)组开头的附加?:使其不会保存到任何匹配数据中。我无法想象这样的场景,我想要保存它的文本。

票数 3
EN

Stack Overflow用户

发布于 2008-09-11 13:52:05

Now You Have Two Problems

只要编写一个简单的解析器即可。如果正则表达式现在让你头昏脑胀,那就等一个月吧。

票数 0
EN

Stack Overflow用户

发布于 2008-09-11 14:24:01

最好的解决方案是进行您自己的字符串解析,因为正则表达式并不真正支持您要做的事情。(rep @Frank Krueger如果你这样说,我只是重复他的建议)

然而,我确实尝试了一个排他性的正则表达式。这将匹配所有不符合"\“后跟字符的条件的字符串。

代码语言:javascript
复制
(?:[\\][\\])(?!(([\\](?![\\])[a-zA-Z])))
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档