我试图捕获字符串的前36个字符,除非最后一个字符是空格。我不想要这个空间。我在这做错了什么?最后,我想让它检查它不是空格,逗号或冒号。这可能吗?
.{36}(?! )
另外,为什么没有选择第一个字母?
答案 0 :(得分:3)
我将您的请求解释为
如果最后一个字符不是空格,则匹配前36个字符;否则匹配35。
这将通过
完成^.{35}[^ ]
如果你想要"没有冒号,逗号或空格"你需要
^.{35}[^:, ]
如果(根据你最近的评论)你想要"最后没有空格,逗号或冒号 - 那么最长的字符串长度不超过36个字符"你得到了
^.{1,35}[^,: ](?![^: ,])
说明:匹配
^ starting at the beginning
.{1,35} at most 35 of anything
[^,: ] not followed by , : or space
(?![^:, ]) not followed by something that isn't , : or space (two negatives...)
确认:
poas apodka sapodkfas adksidfj odfda: asdfasdfasdfasdfasdf: gi oaidfg
匹配
poas apodka sapodkfas adksidfj odfda
但
poas apodka sapodkfas adksidfj odf da: asdfasdfasdfasdfasdf: gi oaidfg
匹配
poas apodka sapodkfas adksidfj odf
答案 1 :(得分:0)