【发布时间】:2012-03-06 20:50:43
【问题描述】:
[^abc] 任何单个字符,除了:a、b 或 c
但是我怎样才能为序列abc以外的任何字符创建正则表达式
这么说吧
"Hello abc awesome world".scan /[^(abc)]+/
将返回“Hello”和“awesome world”。
PS:这不是分割字符串
【问题讨论】:
[^abc] 任何单个字符,除了:a、b 或 c
但是我怎样才能为序列abc以外的任何字符创建正则表达式
这么说吧
"Hello abc awesome world".scan /[^(abc)]+/
将返回“Hello”和“awesome world”。
PS:这不是分割字符串
【问题讨论】:
这称为lookaround,在您的情况下,您将希望使用负前瞻。我不确定 Ruby 中的确切语法,但 (?!abc) 可能会起作用。请注意,环视不会消耗任何输入,因此您需要将其后跟您想要匹配的任何模式。也许(?:(?!abc).)+ 是您要找的?
【讨论】:
(?!abc).+,它对整个字符序列进行了负前瞻。这个似乎是在逐个字符的基础上做的,我什至没有想到。现在一切都很好,很幸福。谢谢!