在python中,字符串类型有'str',"str"两种,注释有'''str''',"""str""",#str三种
其中"str",'''str''',"""str""",#str四种比较简单
最简单的一条了
第二简单的一条
重点到了,这条是最容易出问题的,弄了好多次
(?<!')'[\s\S]*?'(?!')第一个版本和NO.1一样,但是有的会出现'Jack's code'这样字符串中带's和't的句子,然后就出错了,然后有了下面的版本
(?<!')'(?![st])[\s\S]*?'(?!')没错,又出问题了,当出现'stop'……'Jack's code'时,又出错了,然后我就做了一个小小的变动,加了个空格
(?<!')'(?![st] )[\s\S]*?'(?!')看似问题解决了,然而幸好我拿来测试的代码有将近10,000行,什么情况没有,然后又出问题了,'haha\'haha'这里面发疯了,下一个版本
(?<!['\\])'(?![st] )[\s\S]*?(?<!\\)'(?!')怎么样?看着没问题了吧,然后……看看下面的代码
''' This is Donge666's blog. ''' tmd='tmd'然后我疯了,然后又有了下面的版本
(?<!['\\])'(?!([st] )|([st]$))[\s\S]*?(?<!\\)'(?!')然后献出我的10,000行代码来测试,没问题,反正我是不需要其他的了,至于最后一个不够精简?不要管那些了,对我这个菜鸟来说能实现功能就行了
提出所有字符串,可以考虑先找出所有"""str""",然后在源字符串中将"""str"""替换掉,然后依次找出并替换'''str'''、"str"、#str、'str',然后就OK了