我正在学习编写正则表达式,并试图获取url的特定部分。例如,
bool randomName = Config.RandomName;
Console.WriteLine("Bool called");
if (randomName)
{
Console.WriteLine("If statement called!");
for (; ; )
{
try
{
string[] array = File.ReadAllLines(Config.Location);
Random random = new Random();
int num = random.Next(0, array.Length - 1); //error occurs here
string FinalName = array[num];
int num2 = new Random().Next(1, File.ReadAllLines("Proxies.txt").Count<string>());
string proxy = File.ReadAllLines("Proxies.txt")[num2];
Console.WriteLine("Attempting proxy creation!");
Console.WriteLine("CONNECTING TO " + proxy + " ...");
其中“ customerName”是变量,而“ domain和” profile”是常量。
在给出此字符串的情况下,如何获取profileName?我想出了
https://domain/#/customerName/profile/profileName/jobs/jobName
但是真的不知道如何截断“ profileName”之后的其余字符串
答案 0 :(得分:0)
customerName
是一个变量,但是假设它不包含任何斜杠,则可以在{{1之后将其与[^\/]+
进行匹配(这意味着“除了斜杠之外,请重复其他任何字符”)。 }}。相同的模式适用于/#/
。因此,您可以使用:
profileName
https://regex101.com/r/aToq8N/3
https:\/\/domain\/#\/[^\/]+\/profile\/([^\/]+)
将在第一个捕获的组中。
请注意,由于URL不包含profileName
,而仅包含/#/#/
,因此请在正则表达式中使用/#/
而不是\/#\/
。
答案 1 :(得分:0)
即使您的域是固定的,也可以在域部分之前使用此表达式
[^\/]+
这样,除了字母字符外,它还可以包含点。