Tag: 模式匹配

findstring的通用前缀

我有4个string: "h:/a/b/c" "h:/a/b/d" "h:/a/b/e" "h:/a/c" 我想find这些string的通用前缀,即"h:/a" 。 如何find? 通常我会用分隔符'/'分隔string,并把它放在另一个列表中,依此类推。 有没有更好的方法来做到这一点?

使用grep匹配不同可能性的string

我想看看,如果在0和1的4个字符的string中出现"001"或"100"或"000" 。 例如,一个4个字符的string可以像"1100"或"0010"或"1001"或"1111" 。 如何用单个命令匹配string中的许多string? 我知道grep可以用于模式匹配,但是使用grep,我一次只能检查一个string。 我想知道是否可以使用多个string与其他命令或使用grep本身。

Apache Spark中的案例类相等

为什么Spark中的模式匹配与Scala中的模式匹配不一样? 看下面的例子…函数f()尝试模式匹配的类,它在Scala REPL中工作,但在Spark中失败,并导致所有“???”。 f2()是一种解决方法,它使用.isInstanceOf()在Spark中获得所需的结果,但是我明白在Scala中是不好的forms。 任何帮助模式匹配在这种情况下在火花正确的方式将不胜感激。 abstract class a extends Serializable {val a: Int} case class b(a: Int) extends a case class bNull(a: Int=0) extends a val x: List[a] = List(b(0), b(1), bNull()) val xRdd = sc.parallelize(x) 尝试在Scala REPL中工作的模式匹配,但在Spark中失败 def f(x: a) = x match { case b(n) => "b" case bNull(n) => "bnull" case _ […]

正则expression式匹配标准的10位电话号码

我想写一个标准的美国电话号码的正则expression式,支持以下格式: ###-###-#### (###) ###-#### ### ### #### ###.###.#### 其中#表示任何数字。 到目前为止,我提出了以下expression式 ^[1-9]\d{2}-\d{3}-\d{4} ^\(\d{3}\)\s\d{3}-\d{4} ^[1-9]\d{2}\s\d{3}\s\d{4} ^[1-9]\d{2}\.\d{3}\.\d{4} 分别。 我不太确定最后一张是否适用于虚线检查。 我也想知道是否有任何方法可以写出一个单一的expression式,而不是四个不同的expression式来迎合我提到的不同格式。 如果是这样,我不知道我该怎么做。 另外,如何修改expression式/expression式,以便我还可以包含支持区域代码作为可选组件的条件。 就像是 +1 ### ### #### +1是区号,它是可选的。

byte 数组模式search

任何人都知道在byte []数组中search/匹配字节模式的好方法,然后返回位置。 例如 byte[] pattern = new byte[] {12,3,5,76,8,0,6,125}; byte[] toBeSearched = new byte[] {23,36,43,76,125,56,34,234,12,3,5,76,8,0,6,125,234,56,211,122,22,4,7,89,76,64,12,3,5,76,8,0,6,125}

如何在unix / linux shell中进行模式匹配时使用反向或负向通配符?

说我想复制一个目录的内容,不包括名称中包含单词“音乐”的文件和文件夹。 cp [exclude-matches] *Music* /target_directory 应该用什么来代替[排除比赛]来完成呢?

PostgreSQL支持“不区分变音”sorting规则吗?

在Microsoft SQL Server中,可以指定“不区分重音”的sorting规则(对于数据库,表或列),这意味着可能会执行类似查询 SELECT * FROM users WHERE name LIKE 'João' find一个与Joao名字。 我知道可以使用unaccent_string contrib函数从PostgreSQL中的string中删除重音,但是我想知道PostgreSQL是否支持这些“不区分变音”的sorting规则,所以上面的SELECT可以工作。

如何在awk / sed中多次出现两个标记模式之间select行

使用awk或sed我怎样才能select两个不同的标记模式之间发生的线? 可能有多个部分标有这些模式。 例如:假设文件包含: abc def1 ghi1 jkl1 mno abc def2 ghi2 jkl2 mno pqr stu 而起始模式是abc和结束模式是mno所以,我需要的输出为: def1 ghi1 jkl1 def2 ghi2 jkl2 我使用sed来匹配一次模式: sed -e '1,/abc/d' -e '/mno/,$d' <FILE> 在sed或awk有什么方法可以重复执行,直到文件结束?

如何select两种模式之间的线?

我有一个像下面的文件,我想打印两个给定的模式PAT1和PAT2之间的线。 1 2 PAT1 3 – first block 4 PAT2 5 6 PAT1 7 – second block PAT2 8 9 PAT1 10 – third block 我已经阅读了如何selectawk / sed中可能出现多次的两个标记模式之间的行,但我很好奇看到所有可能的组合,无论是否打印模式。 我怎样才能select两种模式之间的线?

PostgreSQL LIKE查询性能变化

我已经看到在我的数据库中的特定表LIKE查询响应时间相当大的变化。 有时我会在200-400毫秒(非常可接受的)内得到结果,但有些时候可能需要多达30秒才能返回结果。 我知道LIKE查询是非常耗费资源的,但我不明白为什么会有这么大的响应时间差异。 我已经在owner1字段上构build了一个btree索引,但我不认为这对LIKE查询有帮助。 任何人有任何想法? 示例SQL: SELECT gid, owner1 FORM parcels WHERE owner1 ILIKE '%someones name%' LIMIT 10 我也试过: SELECT gid, owner1 FROM parcels WHERE lower(owner1) LIKE lower('%someones name%') LIMIT 10 和: SELECT gid, owner1 FROM parcels WHERE lower(owner1) LIKE lower('someones name%') LIMIT 10 有类似的结果。 表行数:约95,000。