我试图创建一个构建一串单词的程序,然后在同一个字符串中找到这些单词。
问题的前半部分正在起作用,但我遇到第二个问题。程序找到的单词,第一次和最后一次,但是,我如何找到最终的中间单词?然后,我如何计算它们?
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)
答案 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
有关此问题的进一步说明,请参阅以下链接:
答案 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;
}