Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我只想捕获nbnbaasd<sd出现在 any 之前的字符串部分a。
nbnbaasd<sd
a
我希望它nbnb作为比赛返回。
nbnb
/.+(?!a)/.match("nbnbaasd<sd") # returns the whole string
只需使用否定字符集:
/[^a]+/.match("nbnbaasd<sd")
它比前瞻方法更有效。
在此处查看实际操作:http ://regexr.com?32288
它返回整个字符串,因为事实上,“nbnbaasd<sd”后面没有“a”。
试试这个。
/.+?(?=a)/.match("nbnbaasd<sd")
(您实际上不需要使用前瞻来实现这一点,但也许您已经简化了您的问题,并且在您的实际问题中,出于某种原因,您确实需要一个零宽度断言。所以这是一个尽可能接近的解决方案你尝试过的一个。)