我尝试用下面的正则表达式做一个简单的文件名匹配,我测试了从这个页面
为示例文件名ABC_YYYYMMDDHHMMSS.sha1
工作
ABC_20[0-9]{2}(0[1-9]|1[0-2])([0-2][0-9]|3[0-1])([0-2][0-3])([0-5][0-9])([0-5][0-9])\.sha1
当我在<code>find</code>的<code>-regex</code<标志中结合这一点时
find . -type f -regex "ABC_20[0-9]{2}(0[1-9]|1[0-2])([0-2][0-9]|3[0-1])([0-2][0-3])([0-5][0-9])([0-5][0-9])\.sha1"
该命令未标识路径中存在的文件(例如 ABC_20161231225950.sha1
)。我知道此页面
中有许多现有的正则表达式类型,但我意识到我的类型是 posix 扩展
的并尝试如下,
find . -type f -regextype posix-extended -regex 'ABC_20[0-9]{2}(0[1-9]|1[0-2])([0-2][0-9]|3[0-1])([0-2][0-3])([0-5][0-9])([0-5][0-9])\.sha1'
仍然没有结果。我搜索了一些类似的此类问题,但它们涉及给出错误的正则表达式,导致找不到文件。就我而言,尽管发现正则表达式是正确的。我需要知道我在这里错过了什么。也可能如何在查找
中使用 -regex
时调试不匹配的问题。
注意:-我可以对正则表达式中的捕获组进行一些优化,但这不在当前问题的范围内。
添加<代码>。*放在正则表达式的开头,因为您总是会得到类似于< code >的内容。/在路径的开头
find . -type f -regextype posix-extended -regex '.*ABC_20[0-9]{2}(0[1-9]|1[0-2])([0-2][0-9]|3[0-1])([0-2][0-3])([0-5][0-9])([0-5][0-9])\.sha1'
问题内容: 我正在解析的字符串中可能包含任意数量的带引号的字符串(我在解析代码,并尝试避免使用PLY)。我想找出是否有子字符串被引用,并且我有子字符串索引。我最初的想法是使用re查找所有匹配项,然后找出它们代表的索引范围。 似乎我应该将re与类似的正则表达式一起使用(目前,我避免使用三引号和此类字符串)。当我使用findall()时,会得到一个匹配字符串的列表,虽然有些不错,但我需要索引。 我的子
问题内容: 代码: 错误: 我在这里做错了什么? 问题答案: 你需要调用的,然后才能调用和相关的功能,大约匹配的文本查询或操纵它(,,等)。 因此,在您的情况下: 这将找到第 一个 匹配项(如果有),并提取由正则表达式匹配的第一个捕获组。如果要在输入字符串中查找所有匹配项,请更改为循环。
有没有人试图描述与正则表达式匹配的正则表达式? 由于重复的关键字,这个主题几乎不可能在网上找到。 它可能在实际应用程序中不可用,因为支持正则表达式的语言通常具有解析它们的方法,我们可以将其用于验证,以及一种在代码中分隔正则表达式的方法,可用于搜索目的。 但是我仍然想知道匹配所有正则表达式的正则表达式是什么样子的。应该可以写一个。
问题内容: 假设我有一本书的书名用 ElasticSearch 索引如下: }’ 例如,我有一本书叫。 以下代码(搜索)可以很好地返回书中: 但是以下代码(搜索)没有: 我试图用或替换空格,但是它也不起作用。 我认为标题以()分隔,因此找不到。 如何要求Elasticsearch在完整标题中搜索regexp? 问题答案: Elasticsearch会将正则表达式应用于令牌生成器针对该字段生成的术语
我们得到了一些这样的内容: