标签: string-matching

检查数组项的字符串并匹配它

我有一个字符串和一个数组,我想检查字符串,并查找该字符串是否包含数组中的任何字符串.

我的数组最多包含10个元素.

string[] stringArray = { "apple", "banana", "orange" };
string text="I want an apple";

public static string getItem(string text)
{
    //check text for stringArray items
    //return item (apple, banana, orange)
}
string item = getItem(text);
Run Code Online (Sandbox Code Playgroud)

所以我正在寻找的是创建一个从中返回项目的方法.另外我想知道是否有任何替代方法可以使用Enum或List <>来完成此操作.

最后我做了这样的方法

public static string getItem(string text)
        {
            string[] stringArray = { "Apple", "Banana", "Orange" };
            string item = stringArray.Where(s => text.ToUpper().Contains(s)).DefaultIfEmpty("None").FirstOrDefault();;
            return item;
        }
Run Code Online (Sandbox Code Playgroud)

c# arrays string match string-matching

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

了解Knuth Morris Pratt(KMP)失效函数

我一直在阅读关于Knuth-Morris-Pratt算法维基百科文章,我对如何在跳转/部分匹配表中找到值感到困惑.

  i  |  0  1  2  3  4  5  6
W[i] |  A  B  C  D  A  B  D
T[i] | -1  0  0  0  0  1  2
Run Code Online (Sandbox Code Playgroud)

如果有人可以更清楚地解释因为句子的快捷方式规则

"让我们说我们发现了一个正确的后缀,它是一个正确的前缀,结束于W [2],长度为2(最大可能)

令人困惑.如果正确的后缀在W [2]结束,它的大小不是3吗?

另外我想知道为什么T [4]在没有大小为1的前缀和后缀时不是1:A.

感谢您提供的任何帮助.

string algorithm string-matching knuth-morris-pratt

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

在正则表达式中获取非法字符范围:java

我有一个简单的正则表达式模式来验证名称.但是当我运行它时,我会得到非法的字符范围错误.我想通过转义"\ s"它会允许一个空间,但编译器仍在抱怨.

public boolean verifyName(String name) {
    String namePattern = "^[\\p{L}]++(?:[',-\\s][\\p{L}]++)*+\\.?$";
    return name.matches(namePattern);
}
Run Code Online (Sandbox Code Playgroud)

这是我认为不应该发生的错误,因为名称可能包含这些错误 [',-\\s]

那我在哪里不明白?

java regex escaping string-matching

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

如何使用正则表达式将String.match()与$ {SOME_TEXT}区分开来

我需要这个字符串:

var x = 'Hi ${name}! How are you? ${name}, you are old! ${name} share with ${other} how do u ${feel}!'
Run Code Online (Sandbox Code Playgroud)

我需要知道使用正则表达式存在多少不同的$ {ANY_THING}.在上面的示例中,我预计3:$ {name},$ {other},$ {feel}

我正在尝试:

x.match(\${([a-zA-Z]))
Run Code Online (Sandbox Code Playgroud)

但输出是错误的:(

谢谢!

javascript regex string string-matching

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

如果字符串包含特定数字,则抓取

我有一个如下的数据集 -

> a_i
 [1] "Our-Facebook-Page/td-p/3175990"                           
 [2] "Our-Facebook-Page/td-p/3175990/page/2"  
   ....    
[17] "Data-duplicate-files/td-p/4743405"                  
[18] "Data-duplicate-files/td-p/4743405/page/2"            
[19] "Subscription-Release-1-sucks/td-p/4556739"       
[20] "Subscription-Release-1-sucks/td-p/4556739/page/2"

 > b_i
[1] "Data-duplicate-files/td-p/4743405"                  
[2] "Subscription-Release-1-sucks/td-p/4556739"
[3] "Quick-fix/td-p/4556740"
Run Code Online (Sandbox Code Playgroud)

我的目标是找到仅存在于b_i中的7位数字(例如4743405,4556739,4556740),并从包含相应数字的a_i中获取数据.所以最终输出将是这样的 -

[1] "Data-duplicate-files/td-p/4743405"                  
[2] "Data-duplicate-files/td-p/4743405/page/2"            
[3] "Subscription-Release-1-sucks/td-p/4556739"       
[4] "Subscription-Release-1-sucks/td-p/4556739/page/2""
Run Code Online (Sandbox Code Playgroud)

我能够使用strsplit(b_i,"/")获取数字但我仍然在抓取包含匹配数字的列表.是否有任何优雅的方式来映射这些数字并获取列表?

regex r pattern-matching matching string-matching

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

从字符串中删除选项卡字符

我有一个问题,当字符串混合阿拉伯语和英语字符,迫使我在那之间添加\t\u0009但这会产生另一个问题,因为当文本出现给客户时,很多空格"因为标签"出现在单词之间外观不可接受,任何想法如何解决这个问题?

java string-matching

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

Erlang:在guard语句中匹配字符串

最近开始使用erlang并遇到上面的问题,你如何在一个守卫声明中比较两个字符串?试过字符串:等于(x,y)的方法,但无法让它在一个守卫内部工作.

string erlang string-matching

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

在Perl中,如何将一个字符串与其他字符串列表进行匹配?

我想$columns[2]根据一小组字符串检查数组中的元素.我现在的方式是;

if (   $columns[2] eq 'string1' 
    || $columns[2] eq 'string2' 
    || $columns[2] eq 'string3' 
    || ...) { 
   ...
}
Run Code Online (Sandbox Code Playgroud)

似乎必须有比所有OR更好的方法.

perl string-matching

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

Python:在字符串中查找所有字符串是否有更可扩展的方法?

我手头有一个相当简单的任务:给定一个(小写的)big字符串和一个(小写的)字符串数组,small如果所有small字符串都在字符串中,我需要产生1 big,否则为0.所以这样做的pythonic方法就是:

>>> big = 'the quick brown fox jumps over the lazy dog'
>>> smallTrue = ["quick","dog","fox"]
>>> smallFalse = ["quick","fox","wolf"]
>>> int(all([s in big for s in smallTrue]))
1
>>> int(all([s in big for s in smallFalse]))
0
Run Code Online (Sandbox Code Playgroud)

问题在于是否有一种不同的方法可以使得0和1更好地扩展到更长的bigs(显然更长)(想想"典型"科学论文的摘要)加上大量small更长的数组?

缩放意味着处理时间,因为我的机器有很多RAM.因此,如果我需要以某种方式预处理数据,这将需要更多的RAM,这将是好的.

问的原因是因为我遇到了一些类似字符串操作任务的可伸缩性问题.

python string lookup scalability string-matching

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

找不到独特的单词

谁能告诉我我的代码有什么问题?基本上,我只需要添加从唯一码字words1uniques列表中,以后我比较这两个words1words2.在if声明中,如果我删除!然后它找到匹配的单词(与我需要的相反)

    List<string> Unique(string lines1 ,string lines2,  char[] separators)
    {
        string[] words1 = lines1.Split(separators, StringSplitOptions.RemoveEmptyEntries);
        string[] words2 = lines2.Split(separators, StringSplitOptions.RemoveEmptyEntries);
        List<string> uniques = new List<string>();

        for (int i = 0; i < words1.Length; i++)
        {
            bool match;
            for (int x = 0; x < words2.Length; x++)
            {
                if (!words1[i].Equals(words2[x]))
                {
                    match = true;
                    uniques.Add(words1[i]);
                    break;
                }
                else
                {
                    match = false;
                }
            }
        }

        return uniques;
    }
Run Code Online (Sandbox Code Playgroud)

c# string-matching

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