今天看到这段,想不明白Agent Alice是怎么被substitute成A***的,有没有懂的mm给解惑一下?谢谢! >>> agentNamesRegex = re.compile(r'Agent (\w)\w*') >>> agentNamesRegex.sub(r'\1****', 'Agent Alice told Agent Carol that Agent Eve knew Agent Bob was a double agent.') A**** told C**** that E**** knew B**** was a double agent.'
今天看到这段,想不明白Agent Alice是怎么被substitute成A***的,有没有懂的mm给解惑一下?谢谢! >>> agentNamesRegex = re.compile(r''''''''Agent (\w)\w*'''''''') >>> agentNamesRegex.sub(r''''''''\1****'''''''', ''''''''Agent Alice told Agent Carol that Agent Eve knew Agent Bob was a double agent.'''''''') A**** told C**** that E**** knew B**** was a double agent.''''''''
shuaidou 发表于 2022-11-10 19:18
每个 ‘Agent Name’ 被变成 N**** N 是 Name 的第一个字母 N换成任何一个字母都一样。
>>> agentNamesRegex = re.compile(r'Agent (\w)\w*') >>> agentNamesRegex.sub(r'\1****', 'Agent Alice told Agent Carol that Agent Eve knew Agent Bob was a double agent.')
A**** told C**** that E**** knew B**** was a double agent.'
上面括号里的就是\1
谢谢,\1就是group(1)
每个 ‘Agent Name’
被变成 N****
N 是 Name 的第一个字母
N换成任何一个字母都一样。
这个double agent,是中国人写的code吧? 只见过dual agent
没错,你现在用得爽,好有成就感。等过了一年以后要改code或者加其他条件的时候,怕是又要花好几个小时来回忆当时是咋想的,用了这么莫名其妙的regex. 要是这个code 不幸传给了其他人,除非你能写好详细的注释,基本上是要被重写的,因为没人愿意花时间去琢磨这个。现在的小年轻都是Python/Java 里面字符串功能用惯了的,谁还搞这个?
没那么险乎!python中用这个regexpr很简单的。 div into python3 这本书regexp的章节查一下就够了。
如果你要用perl 语言来写一遍 code,三个月后自己回来pickup, 那个回忆痛苦,比这个regexp 痛苦多了。
很多大公司,根本不想改legacy perl,但是最终都被迫改成了 python.
double agent是双面间谍,dual agent是房地产业的说法。。。