标签: pattern-matching

使用模式选择在 R 中名称的任何部分都有 XX 的文件

我有一个文件夹,里面装满了名称如下所示的文件,例如:

[1] "./final_model_pre/pre_pe_ja_bc_wm.tif"          "./final_model_pre/pre_pe_ja_bc_wm.tif.aux.xml" 
 [3] "./final_model_pre/pre_pe_ja_bc_wm.tif.ovr"      "./final_model_pre/pre_an_le_glm_wm.tif"        
 [5] "./final_model_pre/pre_an_le_glm_wm.tif.aux.xml" "./final_model_pre/pre_an_le_glm_wm.tif.ovr"    
 [7] "./final_model_pre/pre_an_bo_ma_wm.tif"          "./final_model_pre/pre_an_bo_ma_wm.tif.aux.xml" 
 [9] "./final_model_pre/pre_an_bo_ma_wm.tif.ovr"      "./final_model_pre/pre_pe_ja_mx_wm.tif"         
[11] "./final_model_pre/pre_pe_ja_mx_wm.tif.aux.xml"  "./final_model_pre/pre_pe_ja_mx_wm.tif.ovr"     
[13] "./final_model_pre/pre_pe_ja_rf1_wm.tif"         "./final_model_pre/pre_pe_ja_rf1_wm.tif.aux.xml"
[15] "./final_model_pre/pre_pe_ja_rf1_wm.tif.ovr"     "./final_model_pre/pre_pe_ja_svm_wm.tif"        
[17] "./final_model_pre/pre_pe_ja_svm_wm.tif.aux.xml" "./final_model_pre/pre_pe_ja_svm_wm.tif.ovr" 
Run Code Online (Sandbox Code Playgroud)

我想列出有充分的文件"pe_ja"的名称和仅与".tif"扩展,没有".tif.ovr"".tif.aux.xml"或任何其他分机。我正在尝试使用list.files函数,但我无法pattern正确使用agrument。你能帮我这样做吗?谢谢!PS:我正在使用R。

r file list pattern-matching

0
推荐指数
1
解决办法
418
查看次数

如何在 PowerShell 中过滤文件名模式?

我需要ls | grep 'my[rR]egexp?'在 Powershell 中做一些类似于 Unix 的事情。类似的表达式ls | Select-String -Pattern 'my[rR]egexp?'似乎遍历了列出文件的内容,而不是简单地过滤文件名本身。

选择字符串的文件一直没有多大帮助的。

powershell pattern-matching

0
推荐指数
1
解决办法
1213
查看次数

Postgresql:以“IR”开头的值的模式匹配

如果我的表格内容如下所示:

id | value
------------
1  |CT 6510
2  |IR 52
3  |IRAB
4  |IR AB
5  |IR52
Run Code Online (Sandbox Code Playgroud)

我只需要获取那些内容以“IR”开头的行,然后是一个数字(忽略空格)。这意味着我应该得到值:

2  |IR 52
5  |IR52
Run Code Online (Sandbox Code Playgroud)

因为它以“IR”开头,下一个非空格字符是一个整数。与 IRAB 不同,它也以“IR”开头,但“A”是下一个字符。我只能从 IR 开始查询所有内容。但其他 IR 也出现了。

select * from public.record where value ilike 'ir%'
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?谢谢。

sql postgresql pattern-matching

0
推荐指数
1
解决办法
2690
查看次数

Haskell:函数中的非穷尽模式

我得到以下代码的非详尽模式异常

--determine which list is longer
longer::[a]->[a]->Bool
longer [] [] = False
longer _ [] = True
longer (_:[]) (_:[]) = False
longer (_:xs) (_:ys) = longer xs ys
Run Code Online (Sandbox Code Playgroud)

我不明白我在这里做错了什么。

haskell pattern-matching

0
推荐指数
1
解决办法
1万
查看次数

Haskell 模式匹配将 Map.empty any 与任何 Map.Map kv 匹配

我正在编写一个函数,该函数根据Map.Map参数中的 Map 是否为空而具有不同的操作

这是我的代码:

import qualified Data.Map.Lazy as Map

testF :: (Ord a, Num a) => Map.Map a a -> [a] -> [a]
testF empty _  = [1024]
testF _ []     = []
testF m (x:xs) = [x] ++ (testF m xs)

main = do
  let a = Map.fromList [(1,2), (3,4)]
  print $ testF Map.empty [1,2,3] -- show [1024]
  print $ testF a [1,2,3] -- show [1024] too
  print $ a == Map.empty -- False
Run Code Online (Sandbox Code Playgroud)

当然,GHC 已经通知我最新的功能行是多余的。

Pattern …
Run Code Online (Sandbox Code Playgroud)

haskell pattern-matching

0
推荐指数
1
解决办法
1036
查看次数

java中的URL路径匹配器(Spring)

在我们的应用程序中,我们正在创建不应被某些网址命中的请求过滤器。我们希望能够排除像 spring do witch url patterns 这样的 url,例如:

// register filter in bean
FilterRegistrationBean filterBeanRegistration = new FilterRegistrationBean();
filterBeanRegistration.setFilter(myFilter());
filterBeanRegistration.addInitParameter("excluded", "*/foo/**, */bar/**");
...
Run Code Online (Sandbox Code Playgroud)

并且新的过滤器不会点击像这样的网址domain:8080/aaa/foo/xxxxdomain:8080/bbb/bar/xxxx

你能告诉我如何用 spring 类或其他简单的方法来做到这一点吗?谢谢指教。

编辑:有一种FilterBeanRegistration#addUrlPatterns(String... urls)方法可以指定网址,但没有任何格式可以说明应该点击哪个网址。为了我们的目的,最好排除一些网址。

java regex spring spring-security pattern-matching

0
推荐指数
1
解决办法
4528
查看次数

首选的方法是获取结构域的引用?

从对结构的引用中获取对结构域的引用的所有方法让我不知所措。这些是我现在知道的方式:

struct Foo {
    bar: i32,
}

let foo = &Foo { bar: 123 };

let bar1 = &foo.bar;
let ref bar2 = foo.bar;
let ref bar3 = (*foo).bar;
let &Foo { bar: ref bar4 } = foo;
let Foo { bar: bar5 } = foo;
let Foo { bar: ref bar6 } = foo;
let Foo { bar: ref bar7 } = *foo;
Run Code Online (Sandbox Code Playgroud)

其中哪一种是“首选方式”?我假设像foo.bar单个字段和模式匹配这样的字段访问是首选,以便一次性获得多个字段,但是我不清楚我上面列出的多种方式中的每种情况下应该使用哪种方式。

pattern-matching rust

0
推荐指数
1
解决办法
61
查看次数

常量的模式匹配

所以我有这些常量FilePath变量(字符串)

s1 , s2 , s3 , s4 ... :: Filepath
s1 = "help.txt"
s2 = "sljdfn"
-- ...
Run Code Online (Sandbox Code Playgroud)

而且我有一个函数接受这些文件路径之一并返回一个int值。

positionInList:: Filepath -> Int
positionInList s1 = 1
positionInList s2 = 2
-- ...
Run Code Online (Sandbox Code Playgroud)

但是,在编译时会出现模式匹配冗余警告,并且程序运行异常,所以我认为这是问题所在。我将如何解决呢?

syntax haskell functional-programming pattern-matching

0
推荐指数
1
解决办法
64
查看次数

F#如何避免两次投射

情况1

  1. 从序列中获取价值
  2. 打印一些值
let a = seq { yield Some 1; yield Some 2; yield Some 3; yield None }

a
|> Seq.takeWhile Option.isSome // cast 1
|> Seq.map Option.get          // cast 2
|> Seq.iter (printfn "%A")
Run Code Online (Sandbox Code Playgroud)

情况二

  1. 一些值的过滤序列
  2. 打印某些值
a
|> Seq.filter Option.isSome    // cast 1
|> Seq.map Option.get          // cast 2
|> Seq.iter (printfn "%A")
Run Code Online (Sandbox Code Playgroud)

情况3

  1. 按类型按元素分组
  2. 打印每组的值
type AB =
    | A of a : int
    | B of b : string

let a = seq{
    yield …
Run Code Online (Sandbox Code Playgroud)

f# casting pattern-matching seq

0
推荐指数
1
解决办法
110
查看次数

使用正则表达式查找和合并字符串Python中的单词

我正在尝试找到一种方法来匹配和合并来自以下字符串的球队名称。我用正则表达式尝试了几种不同的方法,但是没有成功。几个例子:

'30 Detroit Red Wings 12 47:06 3 8 1 3 7 0.292'

'31 Los Angeles Kings 11 47:45 4 7 0 4 8'

24 Anaheim Ducks 12 47:49 7 5 0 7 14 0.583

我希望输出看起来像这样:

[30, 'Detroit Red Wings', 12, 47:06, 3, 8, 1, 3, 7, 0.292]

[24, 'Anaheim Ducks', 12, 47:49, 7, 5, 0, 7, 14, 0.583]

这是我使用正则表达式尝试的方法,但没有成功:

pattern = re.compile(r'\b\w+\b')
matches = pattern.finditer(i)
Run Code Online (Sandbox Code Playgroud)

python regex string pattern-matching python-3.x

0
推荐指数
1
解决办法
43
查看次数