我正在尝试使用@
分割令牌,同时不允许使用特定字符
我想出了这个
(@\w+[^ -+=(><)])
但它不能正常工作! 假设我们的目标字符串是这样的:
(() >= @a -5 and () <= @7 and ()= @127 and () = @1-7 and ()= @name_asd ()= @'hey this is a string')
它不会获得单个字符标记!?而且它似乎也接受-
作为有效字符,而它不应该!
我还希望能够解析和匹配字符串,如:
@'sth arbitrary with'
同样,但到目前为止无法弄明白! 我很高兴知道如何解决这个问题。
更新:
我需要获得@
的令牌,这完全意味着我想要
@a For () >= @a -5
@7 For () <= @7
@127 For ()= @127
@1 For () = @1-7
@name_asd For ()= @name_asd
and
@'hey this is a string' For ()= @'hey this is a string'
答案 0 :(得分:3)
@(?:\w+|'[^']*')
请参阅demo.Also将ur -
放在最后,以避免形成不需要的范围。请参阅演示。
https://regex101.com/r/sJ9gM7/87
它没有得到single character tokens
因为你在单个字符之后有空格并且你在\w+
之后没有允许空格。
答案 1 :(得分:1)