在 Python 中使用 re compile 匹配单词
Match the words using re compile in Python
我是 Python 的新手,我有一个包含标点符号和其他单词的文本文件,如何使用特定的文本匹配重新编译。
文本文件如下所示实际有超过 100 个句子如下
file.txt
copy() {
foundation.d.k("cloud control")
this.is.a(context),reality, new point {"copy.control.ZOOM_CONTROL", "copy.control.ACTIVITY_CONTROL"},
context control
我只想要这样的输出
copy.control.ZOOM_CONTROL
copy.control.ACTIVITY_CONTROL
我编写了这样的代码
file=(./data/.txt)
data=re.compile('copy.control. (.*?)', re.DOTALL | re.IGNORECASE).findall(file)
res= str("|".join(data))
以上正则表达式与我所需的输出不匹配。请帮我解决这个问题。提前致谢
您需要先打开并读取文件,然后应用re.findall
方法:
data = []
with open('./data/.txt', 'r') as file:
data = re.findall(r'\bcopy\.control\.(\w+)', file.read())
\bcopy\.control\.(\w+)
正则表达式匹配
\bcopy\.control\.
- copy.control.
字符串作为一个完整的单词(\b
是一个单词边界)
(\w+)
- 捕获组 1(re.findall
的输出):1 个或多个字母、数字或 _
参见regex demo。
然后,您可以打印匹配项:
for m in data:
print(m)
我是 Python 的新手,我有一个包含标点符号和其他单词的文本文件,如何使用特定的文本匹配重新编译。
文本文件如下所示实际有超过 100 个句子如下
file.txt
copy() {
foundation.d.k("cloud control")
this.is.a(context),reality, new point {"copy.control.ZOOM_CONTROL", "copy.control.ACTIVITY_CONTROL"},
context control
我只想要这样的输出
copy.control.ZOOM_CONTROL
copy.control.ACTIVITY_CONTROL
我编写了这样的代码
file=(./data/.txt)
data=re.compile('copy.control. (.*?)', re.DOTALL | re.IGNORECASE).findall(file)
res= str("|".join(data))
以上正则表达式与我所需的输出不匹配。请帮我解决这个问题。提前致谢
您需要先打开并读取文件,然后应用re.findall
方法:
data = []
with open('./data/.txt', 'r') as file:
data = re.findall(r'\bcopy\.control\.(\w+)', file.read())
\bcopy\.control\.(\w+)
正则表达式匹配
\bcopy\.control\.
-copy.control.
字符串作为一个完整的单词(\b
是一个单词边界)(\w+)
- 捕获组 1(re.findall
的输出):1 个或多个字母、数字或_
参见regex demo。
然后,您可以打印匹配项:
for m in data:
print(m)