php小编柚子正则表达式是一种强大的文本匹配工具,能够帮助我们快速查找具有相似性的文本。无论是在字符串处理、数据提取还是验证输入等方面,正则表达式都发挥着重要作用。它的灵活性和高效性使得我们能够更加方便地处理复杂的文本操作,大大提高了开发效率。无论是初学者还是有经验的开发者,掌握正则表达式都是一项必备技能,让我们一起来探索它的魅力吧!
问题内容
我识别了不同 pdf 文档中的文本列表。现在我需要使用正则表达式从每个文本中提取一些值。我的一些模式是这样的:
some text[ -]?(.+)[ ,-]+some other text
登录后复制
但问题是,识别后有些字母可能会出错(”0″ 代替 “o”、”i” 代替 “l” 等)。这就是为什么我的模式与它不匹配。
我想使用类似 jaro-winkler 或 levenshtein 相似性的正则表达式,这样我就可以从 s0me 文本 my_value、一些其他文本 等文本中提取 my_value。
我知道这看起来棒极了。但也许这个问题有解决方案。
顺便说一句,我正在使用 java,但可以接受其他语言的解决方案
解决方法
如果在python中使用regex模块,则可以使用模糊匹配。以下正则表达式允许每个短语最多出现 2 个错误。您可以使用更复杂的错误测试(用于插入、替换和删除),有关详细信息,请参阅链接文档。
import regextxt = 's0me text my_value, some otner text'pattern = regex.compile(r'(?:some text){e输出:
my_value登录后复制
package mainimport ( "fmt" "regexp" "strings" "github.com/agnivade/levenshtein")func findClosestMatch(text string, candidates []string, threshold int) (string, bool) { for _, candidate := range candidates { if levenshtein.ComputeDistance(strings.ToLower(text), strings.ToLower(candidate))正则表达式模式 (?i)(somes*w*s*texts*)([^,]+) 用于捕获类似于“some text”的短语,后跟逗号之前的任何字符
登录后复制
以上就是使用正则表达式查找具有相似性的文本的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3045899.html