用正则表达式匹配单词(Python 3)

tadm123

我已经盯着这个问题好几个小时了,我不知道该用什么正则表达式格式来解决这个问题。

问题:

给定以下输入字符串,找到所有可能的输出单词5个字符或更长。

  1. qwertyuytresdftyuioknn
  2. gijakjthoijerjidsdfnokg

您的程序应该找到可以从提供的字符串中派生的所有可能的单词(5个以上的字符)。使用http://norvig.com/ngrams/enable1.txt作为搜索词典。输出单词的顺序无关紧要。

  1. 女王问题
  2. gaeing garring聚会gateing geing去goring

关于输入字符串的假设:

  • QWERTY键盘
  • 仅小写字母az,无空格或标点符号
  • 输入字符串的第一个和最后一个字符将始终与所需输出字的第一个和最后一个字符匹配。
  • 不要假设用户在字母之间采用最有效的路径
  • 输出单词的每个字母都会出现在输入字符串中

尝试的解决方案:

首先,我从该网页下载了单词,并将它们存储在计算机中的文件中(“ words.txt”):

import requests
res = requests.get('http://norvig.com/ngrams/enable1.txt')
res.raise_for_status()
fp = open('words.txt', 'wb')
for chunk in res.iter_content(100000):
    fp.write(chunk)
fp.close()

然后,我试图使用正则表达式匹配我需要的单词。问题是我不知道如何格式化我re.compile()来实现这一目标。

import re
input = 'qwertyuytresdftyuioknn'         #example
fp= open('words.txt')
string = fp.read()

regex = re.compile(input[0]+'\w{3,}'+input[-1])   #wrong need help here
regex.findall(string)

显而易见,这是错误的,因为我需要匹配输入字符串中从左到右的字母,而不是我误用的任何字母\w{3,}任何帮助,将不胜感激。

彼德

这感觉有点像作业问题。因此,我不会给出完整的答案,但会尝试给出一些提示:方括号之间给出的要匹配的字符组[adfg]将与字母a,d,f或g匹配。[adfg]{3,}将与至少三个字母匹配的任何部分。查看您的单词列表,您只想匹配整行。如果将re.MULTILINE用作第二个参数re.compile^则将匹配行的开头和$结尾。

添加:

如果字符只能出现在给定的顺序,并假设每个字符可以出现任意次数:'qw*e*r*t*y*u*y*t*r*e*s*d*f*t*y*u*i*o*k*n*n'但是,我们总共也必须至少有5个字符。(?<=\w{5})最后添加肯定的后置断言可以确保这一点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查找与3个连续元音正则表达式匹配的单词

来自分类Dev

如何在python 3中打印正则表达式匹配结果?

来自分类Dev

Python3尝试使用正则表达式将模式与变量中的值匹配

来自分类Dev

python3:使用正则表达式进行模式匹配时出现奇怪的行为

来自分类Dev

Python 3中正则表达式匹配数字的奇怪行为

来自分类Dev

python3:正则表达式需要匹配字符,但不希望在输出中

来自分类Dev

正则表达式:在Python 3中匹配歌曲名称

来自分类Dev

python 3正则表达式模式替换

来自分类Dev

Python 3正则表达式问题

来自分类Dev

正则表达式在Python 3中的字节串

来自分类Dev

Python3正则表达式findall

来自分类Dev

使用正则表达式的Python 3

来自分类Dev

Python 3 正则表达式返回意外结果

来自分类Dev

html 链接上的 Python 3 正则表达式

来自分类Dev

正则表达式| 从介词中提取3个单词以内的大写单词

来自分类Dev

Python 3-正则表达式-匹配少一个字符的字符串

来自分类Dev

如何在Python中使用非密码相关的正则表达式将3组中的2组匹配?

来自分类Dev

python 3正则表达式字符串匹配忽略空格和string.punctuation

来自分类Dev

正则表达式从字符串中提取前3个单词

来自分类Dev

正则表达式彼此接近3个单词。如何获得他们的背景?

来自分类Dev

添加正则表达式以检测重复 3 个字符的单词?

来自分类Dev

用于查找没有特定单词的 mp3 URL 的正则表达式

来自分类Dev

用Bash正则表达式匹配单词边界

来自分类Dev

用Bash正则表达式匹配单词边界

来自分类Dev

正则表达式匹配逗号前的最后3个字符

来自分类Dev

Javascript-使用正则表达式匹配3个连续数字的所有实例?

来自分类Dev

正则表达式匹配D或E,后跟2-3位数字

来自分类Dev

正则表达式来匹配具有3个点的域

来自分类Dev

Javascript改进了正则表达式以匹配3的数字块

Related 相关文章

  1. 1

    查找与3个连续元音正则表达式匹配的单词

  2. 2

    如何在python 3中打印正则表达式匹配结果?

  3. 3

    Python3尝试使用正则表达式将模式与变量中的值匹配

  4. 4

    python3:使用正则表达式进行模式匹配时出现奇怪的行为

  5. 5

    Python 3中正则表达式匹配数字的奇怪行为

  6. 6

    python3:正则表达式需要匹配字符,但不希望在输出中

  7. 7

    正则表达式:在Python 3中匹配歌曲名称

  8. 8

    python 3正则表达式模式替换

  9. 9

    Python 3正则表达式问题

  10. 10

    正则表达式在Python 3中的字节串

  11. 11

    Python3正则表达式findall

  12. 12

    使用正则表达式的Python 3

  13. 13

    Python 3 正则表达式返回意外结果

  14. 14

    html 链接上的 Python 3 正则表达式

  15. 15

    正则表达式| 从介词中提取3个单词以内的大写单词

  16. 16

    Python 3-正则表达式-匹配少一个字符的字符串

  17. 17

    如何在Python中使用非密码相关的正则表达式将3组中的2组匹配?

  18. 18

    python 3正则表达式字符串匹配忽略空格和string.punctuation

  19. 19

    正则表达式从字符串中提取前3个单词

  20. 20

    正则表达式彼此接近3个单词。如何获得他们的背景?

  21. 21

    添加正则表达式以检测重复 3 个字符的单词?

  22. 22

    用于查找没有特定单词的 mp3 URL 的正则表达式

  23. 23

    用Bash正则表达式匹配单词边界

  24. 24

    用Bash正则表达式匹配单词边界

  25. 25

    正则表达式匹配逗号前的最后3个字符

  26. 26

    Javascript-使用正则表达式匹配3个连续数字的所有实例?

  27. 27

    正则表达式匹配D或E,后跟2-3位数字

  28. 28

    正则表达式来匹配具有3个点的域

  29. 29

    Javascript改进了正则表达式以匹配3的数字块

热门标签

归档