标签: string-matching

相当于C strncmp的JavaScript(比较字符串的长度)

JavaScript中有与C函数相当的东西strncmp吗? strncmp需要两个字符串参数和一个整数length参数.它会将两个字符串与length字符进行比较,并确定它们是否相等length.

JavaScript是否具有等效的内置函数?

javascript string string-matching

4
推荐指数
1
解决办法
8650
查看次数

帮助构建正则表达式

我需要知道一个字符串是否与许多不同的标准相匹配.我试图通过使用正则表达式来解决这个问题,然后看看它是否匹配(在Java中:str.matches(myRegex);),但是我无法做到正确.

标准如下:

  • 要匹配的字符串由4个字母构成,[AZ]
  • 它可以在" - ","+"或"VC"中的一个之前(但不一定).
  • 它只匹配包含4个字母的字符串(以及可能的前面字符)

例子:

  • "SHSN" - >匹配
  • "+ SHRA" - >匹配
  • "VCSHRA" - >匹配
  • "CAVOK" - >不匹配
  • " - + SHSN" - >不匹配

这可以在一个正则表达式中完成吗?或者应该在代码中完成还是两者结合?

谢谢,

莱纳斯

java regex string-matching

4
推荐指数
1
解决办法
83
查看次数

正则表达式将'lol'与'lolllll'和'omg'匹配为'omggg'等

嘿那里,我喜欢正则表达式,但我根本不擅长它们.

我有一个大约400个缩短词的列表,如lol,omg,lmao等.每当有人输入这些缩短的单词中的一个时,它就会被其英语副本替换([笑声]或其他类似的东西).无论如何,人们很烦人,并且用最后一个字母重复x次来输入这些简短的单词.

例子:omg - > omgggg,lol - > lollll,哈哈 - > haha​​haha,哈哈 - > lololol

我想知道是否有人可以递给我正则表达式(最好用Python)来解决这个问题?

谢谢大家.

(这是一个与Twitter相关的主题识别项目,如果有人好奇.如果有人发推文"让我们去拍摄一些箍",你怎么知道这条推文是关于篮球等等)

python regex string-matching

4
推荐指数
1
解决办法
1064
查看次数

使用Excel在字母数字字符串中出现某些字母的总和

我在应用程序测试中使用了一系列字母数字数据,由于某些原因,我需要计算每个字符串中"a"到"f"的字母出现总和(这将用于进一步的数据处理):

02599caa0b600 --> should be 4
489455f183c1fb49b --> should be 5
678661081c1h
66410hd2f0kxd94f5bb
8a0339a4417
f6d9f967ts4af6e
886sf7asc3e85ec
03f1fhh3c3a2am
e491b17638m60
1m8h2m07bhaa4tnhbc4
29ma900a80m96m65
ca6a75f505tsac8
956828db8ts7fd1d
cf1d220a59a7851180e
a8b7852xd9e7a9
b85963fbe30718db9976
39b8kx8f85abb1b6
0xxb3b648ab
a8da75f730d45048
588h69d344
Run Code Online (Sandbox Code Playgroud)

这是字符串的样子,它们的长度大约是10-30个符号,我想它每天大约有3-5k个用于处理.假设和限制:

  1. 信件的情况并不重要(愉快).
  2. 字母列表可能会改变一天,但很可能仍然是一个范围,例如ak,dg等 - 因此解决方案应该尽可能灵活.
  3. 不禁止任何临时计算/范围,但越短越好.
  4. 我更喜欢纯Excel解决方案,但万一它太复杂了 - VBA仍然是一个选择.然而,复杂的Excel公式比"2行代码"VBA更好 - 如果第一个按预期工作.

到目前为止我已经尝试过的事情(我注意到,这里的做法非常受欢迎):

  • 通过已经回答的问题进行搜索,但没有找到任何类似的基于Excel的解决方案.其他语言/方法不是一种选择(VBA除外).
  • 到目前为止,我自己得到的最好的东西是嵌套SUBSTITUTE函数,但它很脏而且非常简单.假设范围可能会变为cx,这将是一场噩梦.
  • 我不是Excel的新手,但复杂的数组公式之类的东西对我来说仍然很难 - 唉但是真的......

无论如何,我不要求"随时可用"的"开箱即用"解决方案 - 我寻求帮助和正确的方向/方法进行自学并进一步了解类似的问题.

excel parsing match string-matching

4
推荐指数
1
解决办法
818
查看次数

KMP故障函数计算

我的教授解决了kmp失败函数如下:

index  1 2 3 4 5 6 7 8 9
string a a b a a b a b b
ff     0 1 2 1 2 3 4 5 1
Run Code Online (Sandbox Code Playgroud)

从我在网上查看的其他文本中,我发现它可能是错的,我再次向他证实,他告诉我他是绝对正确的.有人可以向我解释为什么他会以简单的一步一步的方式认为这是对还是错?谢谢

knuth string-matching knuth-morris-pratt

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

将"在字符串列表中设置"优化为"设置为矩阵"操作

我有一组包含空格分隔元素的字符串.我想建立一个矩阵,告诉我哪些元素是哪些字符串的一部分.例如:

""
"A B C"
"D"
"B D"
Run Code Online (Sandbox Code Playgroud)

应该给出类似的东西:

  A B C D
1
2 1 1 1
3       1
4   1   1
Run Code Online (Sandbox Code Playgroud)

现在我已经有了一个解决方案,但是它作为磨拉石运行缓慢,而且我已经没有关于如何加快速度的想法:

reverseIn <- function(vector, value) {
    return(value %in% vector)
}

buildCategoryMatrix <- function(valueVector) {
    allClasses <- c()
    for(classVec in unique(valueVector)) {
        allClasses <- unique(c(allClasses,
                               strsplit(classVec, " ", fixed=TRUE)[[1]]))
    }

    resMatrix <- matrix(ncol=0, nrow=length(valueVector))
    splitValues <- strsplit(valueVector, " ", fixed=TRUE)

    for(cat in allClasses) {
        if(cat=="") {
            catIsPart <- (valueVector == "")
        } else {
            catIsPart <- sapply(splitValues, reverseIn, …
Run Code Online (Sandbox Code Playgroud)

optimization r string-matching

4
推荐指数
1
解决办法
127
查看次数

Python中经常使用的单词

如何编写代码以找到最常见的2-mer"GATCCAGATCCCCATAC".我写了这段代码,但似乎我错了,请帮忙纠正我.

def PatternCount(Pattern, Text):
    count = 0
    for i in range(len(Text)-len(Pattern)+1):
        if Text[i:i+len(Pattern)] == Pattern:
            count = count+1
    return count
Run Code Online (Sandbox Code Playgroud)

此代码在字符串中打印最频繁的k-mer,但它不会给出给定字符串中的2-mer.

python bioinformatics string-matching

4
推荐指数
1
解决办法
1086
查看次数

匹配两个字符串(char到char),直到第一次使用python不匹配

我试图顺序匹配两个字符串,直到第一个不匹配的字符,然后确定完全匹配的百分比.我的代码是这样的:

def match(a, b):
    a, b = list(a), list(b)
    count = 0
    for i in range(len(a)):
        if (a[i]!= b[i]): break
        else: count = count + 1
    return count/len(a)

a = '354575368987943'
b = '354535368987000'
c = '354575368987000'
print(match(a,b)) # return 0.267
print(match(a,c)) # return 0.8
Run Code Online (Sandbox Code Playgroud)

python中是否有任何内置方法可以更快地完成它?为简单起见,假设两个字符串长度相同.

python string-matching

4
推荐指数
1
解决办法
415
查看次数

r dplyr ends_with多个字符串匹配

我可以使用dplyr :: select(ends_with)选择适合多种条件的列名称。考虑到我的列名,我想使用结尾于而不是包含或匹配项,因为我要选择的字符串在列名的末尾相关,但也可能出现在其他中间。例如,

df <- data.frame(a10 = 1:4,
             a11 = 5:8,
             a20 = 1:4,
             a12 = 5:8)
Run Code Online (Sandbox Code Playgroud)

我想选择以1或2结尾的列,以仅具有a11和a12列。select(ends_with)是最好的方法吗?

谢谢!

select r string-matching ends-with dplyr

4
推荐指数
2
解决办法
4255
查看次数

在Python字典中匹配不完整的字符串

我有这个字典,其中键是字符串,值是整数,如:

{
...
'X ontology entity': 0, 
'X entity': 1, 
'image quality': 10, 
'right lower kidney': 10, 
'magnetic resonance imaging': 10312, 
'MR imaging': 10312, 
 ...
}
Run Code Online (Sandbox Code Playgroud)

我正在迭代这个词典的键,试图用这些键匹配一系列令牌.假设我有以下一系列令牌:

MR imaging shows that the patient suffers from infection in right lower kidney.
Run Code Online (Sandbox Code Playgroud)

我只是用空格分割上面的文字.

我想匹配MR成像,以及右下肾,因为它们是字典中的关键.所以,我写了下面的代码,我可以匹配"MR成像",而不是"右下肾".(注意,键组中不存在右下方)

found = []
for i, t in enumerate(tokens):
    term = [tokens[i]]
    j = deepcopy(i)
    while (' '.join(term) in self.db_terms):
        if j < len(tokens):
            j += 1
            term.append(tokens[j])
    found.append(' '.join(term[:-1]))
return set(found)
Run Code Online (Sandbox Code Playgroud)

我不知道如何通过键搜索"右下方",匹配"右下肾",然后去检查第三个索引.

任何帮助,将不胜感激!谢谢!

python regex string string-matching

4
推荐指数
1
解决办法
315
查看次数