You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
import time
|
|
|
|
|
import sys
|
|
|
|
|
import os
|
|
|
|
|
import re
|
|
|
|
|
|
|
|
|
|
# pip3 install install pyperclip
|
|
|
|
|
sys.path.append(os.path.abspath("SO_site-packages"))
|
|
|
|
|
import pyperclip # 引入模块
|
|
|
|
|
|
|
|
|
|
recent_value = ""
|
|
|
|
|
tmp_value = "" # 初始化(应该也可以没有这一行,感觉意义不大。但是对recent_value的初始化是必须的)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def add_dollars(text):
|
|
|
|
|
pattern = r'(?<!\$)\b([a-zA-Z0-9.+*/-]+)\b(?!\$)'
|
|
|
|
|
replace_text = r'$\1$'
|
|
|
|
|
result = re.sub(pattern, replace_text, text)
|
|
|
|
|
return result
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
while True:
|
|
|
|
|
tmp_value = pyperclip.paste() # 读取剪切板复制的内容
|
|
|
|
|
if tmp_value != recent_value: # 如果检测到剪切板内容有改动,那么就进入文本的修改
|
|
|
|
|
recent_value = tmp_value
|
|
|
|
|
lines = recent_value.split('\n')
|
|
|
|
|
changed = "### 一、题目描述\n"
|
|
|
|
|
flag = False
|
|
|
|
|
for line in lines:
|
|
|
|
|
if not flag:
|
|
|
|
|
line = add_dollars(line)
|
|
|
|
|
line = line.replace("$\r", "$")
|
|
|
|
|
line = line.replace("$\n", "$")
|
|
|
|
|
if "输入样例" in line:
|
|
|
|
|
flag = True
|
|
|
|
|
line = line.replace("输入格式", "**输入格式**")
|
|
|
|
|
line = line.replace("输出格式", "**输出格式**")
|
|
|
|
|
line = line.replace("数据范围", "**数据范围**")
|
|
|
|
|
|
|
|
|
|
if "输入样例" in line:
|
|
|
|
|
line = "\r\n\r\n" + line.replace("输入样例", "**输入样例**")
|
|
|
|
|
line = line + "\r\n" + "```cpp {.line-numbers}\r\n"
|
|
|
|
|
|
|
|
|
|
if "输出样例" in line:
|
|
|
|
|
line = "```\r\n" + line.replace("输出样例", "**输出样例**")
|
|
|
|
|
line = line + "\r\n" + "```cpp {.line-numbers}\r\n"
|
|
|
|
|
|
|
|
|
|
changed = changed + line
|
|
|
|
|
|
|
|
|
|
changed = changed + "\n" + "```"
|
|
|
|
|
recent_value = changed
|
|
|
|
|
pyperclip.copy(changed) # 将修改后的文本写入系统剪切板中
|
|
|
|
|
print("\n Value changed: %s" % str(changed)) # 输出已经去除换行符的文本
|
|
|
|
|
time.sleep(0.1)
|