Hej! Regex är ofta overkill och en vanlig String.Replace borde räcka. Dock är problemet att argumenten i detta fallet får olika nummer beroende på input. Det var det första jag provade, men med nuvarande god, så blir då ditt exempel:Hjälp med Regex
Ny på forumet, och nu i C#, hoppas kunna hitta lite hjälp.
Jag försöker modifiera en befintlig kod för att passa mina behov, men vet inte riktigt hur jag skall göra.
Jag har följande kod:
using System;
using System.Collections.Generic;
using System.Threading;
using OpenMetaverse;
using OpenMetaverse.Packets;
using System.Text;
namespace OpenMetaverse.TestClient
{
public class GroupSendNoticeCommand : Command
{
public GroupSendNoticeCommand(TestClient testClient)
{
Name = "snotice";
Description = "Send a Notice to group GroupUUID subject body";
Category = CommandCategory.Groups;
}
public override string Execute(string[] args, UUID fromAgentID)
{
if (args.Length < 3)
return Description;
UUID avatar = UUID.Zero;
UUID group = UUID.Zero;
UUID role = UUID.Zero;
string subject = args[1];
string message = String.Empty;
for (int ct = 2; ct < args.Length; ct++)
message += args[ct] + " ";
message = message.TrimEnd();
if (message.Length > 1023)
message = message.Remove(1023);
if (!UUID.TryParse(args[0], out group))
return "parse error group UUID";
GroupNotice notice = new GroupNotice();
notice.Message = message; notice.Subject = subject;
Client.Groups.SendGroupNotice(group, notice);
//Client.Groups.Invite(group, roles, avatar);
return "Sent notice to " + group;
}
}
}
Syntaxen för denna kod är: > snotice UUID Subject body precis som description säger.
Jag vill nu ändra syntaxen till att ta emot > snotice UUID %subject% body
istället för att andra argumentet är subject, så skall den ta allt som är mellan % % och sätta i stringen subject. Jag vet så pass mycket som att jag måste använda mig av regex (eller, iallafall tror jag mig behöva det), men då jag aldrig arbetat med regex i C# så har jag ingen aning om hur jag skall lösa detta.
Jag söker förståss inte en färdig lösning, men bra tips på hur jag skall göra.
Har sökt ett bra tag på google och hittade hit och sökte även här, hittat massor av resultat, men inget jag förstår mig på hur jag skall använda mig av.
Är mycket tacksam för all hjälp jag kan tänkas få.
Sv: Hjälp med Regex
Frågan är om du behöver ändra koden. Genom att använda kommando-standard borde du kunna åstadkomma subject med mellanrum:
> snotice UUID "Subject with multiple words" body
Då kommer hela strängen räknas som ett argument.Sv:Hjälp med Regex
in:
> snotice UUID "Subject with multiple words" body
ut;
UUID: UUID
Subject; "Subject
Body: with multiple words" body