【问题标题】:Regex, word permutations and visual basic [closed]正则表达式、单词排列和 Visual Basic [关闭]
【发布时间】:2013-08-14 13:30:04
【问题描述】:

我有一个词表文本文件,体积小,不到几百字。我想获取一个关键字并对照单词列表检查它,保存所有匹配项并将它们显示在列表框中。

我对编程相当陌生,我一直在研究正则表达式来匹配部分模式,并开始研究创建一个函数来生成关键字的每个排列/组合的列表,然后针对单词列表运行它们。

我希望有人可以提供帮助。我希望理想地匹配列表中按顺序共享超过四个字母的任何单词(意思是,如果列表有stephen,关键字是steph12345,那么我希望它匹配。但是step_gtkyn0123会通过)。

我真的只是希望被指向正确的方向。

【问题讨论】:

  • 如果您发布一些示例数据,它可以帮助人们更好地了解您的问题。
  • 我想我们应该发布一个元堆栈问题,要求版主使用一个特殊的正则表达式问题发布页面,要求每个人不要要求解析嵌套结构(XML、HTML 等)并拥有样本、输入、输出三个部分,到目前为止您尝试了什么以及您使用的是什么语言!
  • 我以为标题在 lang 上很清楚,但很抱歉,lang 是 Visual Basic。
  • 它是一个简单的调查程序,它将输入保存到本地系统上的 txt 文件中,然后要求输入关键字来测试创建的文件以查看是否存在类似的单词。如果确实如此,则将类似的单词保存到列表框中。我不熟悉向更聪明的人寻求帮助,并且愿意自学只是寻求帮助而不是评论斗争。
  • 比赛的位置重要吗? 123steph123会被视为匹配吗?

标签: .net regex vb.net string


【解决方案1】:

如果我理解正确,您只想从指定的关键字中查找包含 5 个或更多连续字母的单词。位置无关紧要。请尝试以下操作:

 Dim words As String() = New String() {"steph", "steph123", "step_gtk", "stephan", "123steph123", "step1stph"}
 Dim keyword As String = "steph12345"
 'match must be greater than 4, so substring 5
 Dim rgx As String = keyword.Substring(0, 5)

 For Each word As String In words

     If Regex.IsMatch(word, rgx) Then
         Console.WriteLine(word)
     End If
 Next

'Outputs
'steph
'steph123
'stephan
'123steph123'

【讨论】:

  • 谢谢你,我会玩弄这个,看看它会去哪里。
猜你喜欢
  • 2015-10-30
  • 2021-11-16
  • 2012-10-17
  • 2016-05-09
  • 2021-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-17
相关资源
最近更新 更多