2011-08-24 119 views
5

我使用这个正则表达式来小写文本文件中的介词,连词等,我想添加2个例外:当$ 1前面加上“:”或前面加“ - ”时,不要小写。什么是适当的,简洁的方式来做到这一点。谢谢。正则表达式小写

s/(\s(?:a|about|an|and|at|by|for|from|in|is|it|of|on|the|to|with))\b/\L$1/gi; 
+0

我喜欢环视涉及正则表达式的问题。 –

+0

更大的介词列表:http://en.wikipedia.org/wiki/List_of_English_prepositions – sidyll

回答

3

$1前加一个否定向后看:

(?<![:-]) 
+0

许多非常感谢! – thebourneid

+1

欢迎来到StackOverflow!请务必阅读[faq](http://stackoverflow.com/faq)(如果您还没有),并且如果此答案真正解决了您的问题,请不要忘记将其标记为已接受。 – sidyll

+2

但是一个字符类比交替更好:(?<![: - ]) – tadmc