Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式能否使用pyperclip搜索从剪贴板分配的变量?_Python_Regex_Pyperclip - Fatal编程技术网

Python 正则表达式能否使用pyperclip搜索从剪贴板分配的变量?

Python 正则表达式能否使用pyperclip搜索从剪贴板分配的变量?,python,regex,pyperclip,Python,Regex,Pyperclip,我正在编写一个python脚本,用于修剪只显示借方行的信用卡对账单,删除其他行,如前言信息和滚动余额。预期用途是将整个语句复制到剪贴板,运行程序,并将修剪后的匹配项输出到剪贴板以粘贴到其他位置。我正在使用pyperclip模块进行剪贴板输入和输出 当我在代码中有一个字符串来测试正则表达式和输出时,脚本就会工作,但是当我开始使用pyperclip.paste来分配输入时,我会得到一个空的输出。代码如下所示: #! python3 import re import pyperclip debit

我正在编写一个python脚本,用于修剪只显示借方行的信用卡对账单,删除其他行,如前言信息和滚动余额。预期用途是将整个语句复制到剪贴板,运行程序,并将修剪后的匹配项输出到剪贴板以粘贴到其他位置。我正在使用pyperclip模块进行剪贴板输入和输出

当我在代码中有一个字符串来测试正则表达式和输出时,脚本就会工作,但是当我开始使用pyperclip.paste来分配输入时,我会得到一个空的输出。代码如下所示:

#! python3

import re
import pyperclip

debitRegex = re.compile(r'''
\d+
/
.*
\d*
\.
\d\d
\n
''', re.VERBOSE)

text = str(pyperclip.paste())

matchesPartial = debitRegex.findall(text)

matches = []
for element in matchesPartial:
    matches.append(element.strip())

pyperclip.copy('\n'.join(matches))
如上所述,如果我用一个test sting替换“text”变量,那么一切正常。我通过打印“匹配项”来验证输出,因此遇到了麻烦。它与替换“pyperclip.paste()”的字符串一起工作,并且在使用“pyperclip.paste()”时类似地不显示任何内容

我假设pyperclip.paste()有一个方面是我误解的,当我在上面运行正则表达式时,它不会导致输出。以下是我用于测试目的的输入类型示例:

Having trouble making repayments....
03/06/19 01/06/19 MANGO 200.00
03/06/19 01/06/19 C ADV FEE 4.00
03/06/19 01/06/19 MULBERRY 200.00
03/06/19 03/06/19 INTERNET PAYMENT Linked A cc Trns 200.00 CR
03/06/19 03/06/19 INTERNET PAYMENT Linked A cc Trns 60.00 CR
04/06/19 04/06/19 BAT 100.00
04/06/19 04/06/19 C ADV FEE 2.50 
输出应去除前言行和以“CR”结尾的行


我在一台普通的Windows10机器上使用这个程序,没有已知的剪贴板异常。任何人能提供的任何帮助都将不胜感激

您的正则表达式要求紧跟金额的最后一位使用换行符。我在这里看到了两个可能的问题-行上可能有一个尾随空格,或者在换行之前可能有回车符。打印剪贴板文本的
repr()。数字与文本之间的空格右对齐。。*似乎很好地处理了所有的空白。在我感兴趣的数字之后没有任何内容保存\n字符。当我手动分配文本时,正则表达式输出我想要的内容,但当我使用pyperclip.paste执行此操作时,正则表达式输出失败。