C#在String上查找单词

时间:2016-09-06 23:41:05

标签: c#

我试图创建一个构建一串单词的程序,然后在同一个字符串中找到这些单词。

问题的前半部分正在起作用,但我遇到第二个问题。程序找到的单词,第一次和最后一次,但是,我如何找到最终的中间单词?然后,我如何计算它们?

import sha3
import hashlib
import request

url = 'https://account.socialbakers.com/login'
myemail = "abhigolu10@gmail.com"
mypassword = hashlib.sha3_512(b"st@ck0verflow").hexdigest() #take SHA3 of password
payload = {'email':myemail, 'password':mypassword}
with session() as s:
    soup = BeautifulSoup(s.get(url).content,'lxml')
    p = s.post(url, data = payload, verify=True)
    print(p.text)

3 个答案:

答案 0 :(得分:1)

您需要链接IndexOf来电,如下:

var i = -1
while (true)
{
     i = strFinal.IndexOf(textoAEncontrar, i+1);
     if (i == -1) break;
     Console.WriteLine("Found string at {0}", i);
}

您可能需要改进上面的边界检查,但这是一般的想法。

答案 1 :(得分:0)

在这样的时间,RegEx是你肯定需要的。 RegEx有一个.Match,可能就是您所需要的。

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        Regex regex = new Regex(@"\d+");
        Match match = regex.Match("Dot 55 Perls");
        if (match.Success)
        {
            Console.WriteLine(match.Value);
        }
    }
}

因为我们正在寻找字符串中的数值,所以我们会得到55

有关此问题的进一步说明,请参阅以下链接:

http://www.dotnetperls.com/regex

https://stackoverflow.com/a/2159085/5694113

答案 2 :(得分:0)

您可以创建一个方法来获取字符串中第n个出现的索引。您还可以使用text.Split计算出现次数,因为您有一个分隔符字符空间。

        static void Main(string[] args)
        {    
            string text = "apple cinder apple goat apple";
            string searchWord = "apple";

            string[] textSplit = text.Split(' ');

            int searchResultCount = textSplit.Where(s => s == searchWord).Count();

            Console.WriteLine(text);
            Console.WriteLine(searchWord);
            Console.WriteLine(searchResultCount);
            Console.WriteLine(IndexOfOccurence(text, searchWord, 2));

            Console.ReadLine();
        }

        static int IndexOfOccurence(string s, string match, int occurence)
        {
            int i = 1;
            int index = 0;

            while (i <= occurence && (index = s.IndexOf(match, index)) != -1)
            {
                if (i == occurence)
                   return index;
                index++;
                i++;
            }

            return -1;
        }