当前位置: 首页 > 面试题库 >

给定一个字符串,生成一个可解析*相似*字符串的正则表达式

耿建弼
2023-03-14
问题内容

例如,给定字符串“ 2009/11/12”,我想获取正则表达式(“ \ d {2} / d {2} / d {4}”),因此可以匹配“ 2001
/也是01/02”。

有什么可以做的吗?相似的东西?有任何想法吗?


问题答案:

有text2re,这是一个基于Web的免费“正则表达式示例”生成器。

我认为这在源代码中不可用。我敢说没有自动的正则表达式生成器,无需用户干预即可正确运行,因为这将要求计算机知道您想要的内容。

请注意,text2re使用基于模板的,模块化且非常通用的方法来生成正则表达式。它生成的表达式很有效,但是它们比等效的手工表达式复杂得多。它不是 学习
正则表达式的好工具,因为它在设置示例方面做得很糟糕。

例如,字符串"2009/11/12"将被识别为yyyymmdd模式,这很有用。该工具将其转换为 以下 125个字符的怪物:

((?:(?:[1]{1}\d{1}\d{1}\d{1})|(?:[2]{1}\d{3}))[-:\/.](?:[0]?[1-9]|[1][012])[-:\/.](?:(?:[0-2]?\d{1})|(?:[3][01]{1})))(?![\d])

手工制作的内容只占其中的五分之二(50个字符):

([12]\d{3})[-:/.](0?\d|1[0-2])[-:/.]([0-2]?\d|3[01])\b


 类似资料:
  • 存在问题 来自用户输入,一个文件或一个网站的HTML字符串,你可能需要对它进行解析并取其内容,或校验其格式是否完整,或想修改它。怎么办?jsonu能够帮你轻松解决这些问题 解决方法 使用静态Jsoup.parse(String html) 方法或Jsoup.parse(String html, String baseUri)示例代码: String html = "<html><head><tit

  • 问题内容: 我是正则表达式的新手,并且想知道如何才能只获取字符串中的第一个数字,例如。在这种情况下,我希望它返回,但是数字也可以更短或更长时间。 我在考虑类似的东西,但它会将每个数字分别分开(100,2001,10,…) 谢谢。 问题答案: 尝试以下操作以匹配字符串中的第一个数字(该数字不能位于字符串的开头):

  • 我有一根这样的绳子 余额:“5048543747”,余额:“5119341413”,帐号:“0001000918”, 我使用了REGEX (.*?), 结果我收到的第一个子字符串是 余额:“5048543747” 实际上,我想要得到的结果是数组包括 { 余额:“5048543747” Baldefovd:“5119341413” 账号:“0001000918” } 有人能帮我吗。多谢。 编辑 我使

  • 我有一个包含数千行的文本文件。这里有一个例子 我试图提取'nt60'、'nt50'末尾的字符串。 问题是会包含行尾字符() 我想使用正则表达式搜索来匹配从 (') 开始的字符串,但我不知道我应该用什么来匹配 。 有人能帮忙吗?

  • 问题内容: 我想获得正则表达式的第一场比赛。 在这种情况下,我得到了一个列表: [‘33’,‘44’] 我可以提取列表的第一个元素: ‘33’ 但这仅在至少有一个匹配项的情况下有效,否则我将收到错误消息: IndexError:列表索引超出范围 在这种情况下,我可以定义一个函数: 是否有一种无需定义新功能即可获得该结果的方法? 问题答案: 您可以通过添加默认值到您的正则表达式中: 也可以与其他人指