我试图用regex解析字符串。我需要在一个干净的&之前得到第一部分。一个干净的&在它之前或之后没有+。
清洁&:
不清洁&:
对于Matisse+&+Sadko&sendtemp=1,regex应该返回Matisse+&+Sadko。
我试过这样做,但我做不到:
.*(?!\+)&(?!\+).*谢谢。
发布于 2012-07-27 09:51:02
(?!...)是一个(负)查找表达式,它检查下一个字符是否匹配(不匹配)。因此,您需要将这一个字符添加到regex中,因为&从来不是+。
(?!\+).&(?!\+)但在&之前,这至少需要一个角色。更好地使用(负)查找:
(?<!\+)&(?!\+)阅读有关Regex环顾的更多信息。
如果您的&从来不在字符串的开头或结尾,您也可以只使用一个否定的字符类:
.*[^+]&[^+].*如果可以的话,让...or是可选的:
^(?:.*[^+])?&(?:[^+].*)?$发布于 2012-07-27 09:51:23
所以,这是好的,你看负面展望,但它的任务更多(!)很简单。
[somesymbols] --这是一组符号,是正则表达式所接受的。
[^somesymbols] -这是一组符号,正则表达式不接受。
所以,只需编写如下:[^+]&[^+]来过滤您的字符串
https://stackoverflow.com/questions/11685296
复制相似问题