首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建一个将接受的正则表达式&但不接受+&+

创建一个将接受的正则表达式&但不接受+&+
EN

Stack Overflow用户
提问于 2012-07-27 09:45:23
回答 2查看 43关注 0票数 0

我试图用regex解析字符串。我需要在一个干净的&之前得到第一部分。一个干净的&在它之前或之后没有+

清洁&:

  • 47和78
  • a+bc&gsd+f

不清洁&:

  • fA+&71
  • nap&+sys

对于Matisse+&+Sadko&sendtemp=1,regex应该返回Matisse+&+Sadko

我试过这样做,但我做不到:

代码语言:javascript
复制
.*(?!\+)&(?!\+).*

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-27 09:51:02

(?!...)是一个(负)查找表达式,它检查下一个字符是否匹配(不匹配)。因此,您需要将这一个字符添加到regex中,因为&从来不是+

代码语言:javascript
复制
(?!\+).&(?!\+)

但在&之前,这至少需要一个角色。更好地使用(负)查找:

代码语言:javascript
复制
(?<!\+)&(?!\+)

阅读有关Regex环顾的更多信息。

如果您的&从来不在字符串的开头或结尾,您也可以只使用一个否定的字符类:

代码语言:javascript
复制
.*[^+]&[^+].*

如果可以的话,让...or是可选的:

代码语言:javascript
复制
^(?:.*[^+])?&(?:[^+].*)?$
票数 3
EN

Stack Overflow用户

发布于 2012-07-27 09:51:23

所以,这是好的,你看负面展望,但它的任务更多(!)很简单。

[somesymbols] --这是一组符号,是正则表达式所接受的。

[^somesymbols] -这是一组符号,正则表达式不接受。

所以,只需编写如下:[^+]&[^+]来过滤您的字符串

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11685296

复制
相关文章

相似问题

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