Wikipedia:Reference desk/Archives/Computing/2016 July 27
Computing desk | ||
---|---|---|
< July 26 | << Jun | July | Aug >> | July 28 > |
Welcome to the Wikipedia Computing Reference Desk Archives |
---|
The page you are currently viewing is an archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages. |
July 27
[edit]Some C# help needed
[edit]Hi guys! Could somebody help out with C#? If I have regex pattern ([^\.])<ref>.*?<\/ref> (Lorem|Foo)? bar
and string "Foo<ref>Foo</ref> Foo bar
", how to change to lowercase only the second match (in this case - the "Foo", that comes after ref)? If I would need to lowercase everything, I would use something like (tested with other string, so this one may contain some small bugs, but you got the idea):
string text = @"Foo<ref>Foo</ref> Foo bar";
string pattern = @"([^\.])<ref>.*?<\/ref> (Lorem|Foo)? bar";
text = Regex.Replace(text, pattern, delegate(Match match)
{
string v = match.ToString();
return v.ToLower();
});
Note, that this is for AWB module, so it might not look very C#-ish. --Edgars2007 (talk/contribs) 09:16, 27 July 2016 (UTC)
- Maybe Trappist the monk could take a look - you have also worked with AWB modules. --Edgars2007 (talk/contribs) 11:28, 28 July 2016 (UTC)
- Try this:Not tested, but I've used this construct before.
string text = @"Foo<ref>Foo</ref> Foo bar"; string pattern = @"([^\.])<ref>.*?<\/ref> (Lorem|Foo)? bar"; text = Regex.Replace(text, pattern, delegate(Match match) { return match.Groups[2].Value.ToLower(); // second capture to lower case });
- —Trappist the monk (talk) 11:55, 28 July 2016 (UTC)
- @Trappist the monk: it kind of works. String after this becomes "Fofoo". Yes, that is what I was expecting to see after running this code, but not what I wanted to get ("Foo<ref>Foo</ref> foo bar"). --Edgars2007 (talk/contribs) 12:44, 28 July 2016 (UTC)
- Perhaps this then:Again, not tested.
string text = @"Foo<ref>Foo</ref> Foo bar"; string pattern = @"([^\.]<ref>.*?<\/ref> )(Lorem|Foo)?( bar)"; // captures modified text = Regex.Replace(text, pattern, delegate(Match match) { return match.Groups[1].Value + match.Groups[2].Value.ToLower() + match.Groups[3].Value; // second capture to lower case });
Regex.Replace
replaces all oftext
with whatever you return from thedelegate()
, right? If you want to keep bits oftext
then you need to capture them, modify the captures to suit, reassemble, and return the result.match.Groups[0]
is the raw match;match.Groups[1]
is the first capture, etc. - —Trappist the monk (talk) 13:24, 28 July 2016 (UTC)
- @Trappist the monk: I thought, that there will be easier solution, but this one works, so thank you! --Edgars2007 (talk/contribs) 17:35, 28 July 2016 (UTC)
- Perhaps this then:
- @Trappist the monk: it kind of works. String after this becomes "Fofoo". Yes, that is what I was expecting to see after running this code, but not what I wanted to get ("Foo<ref>Foo</ref> foo bar"). --Edgars2007 (talk/contribs) 12:44, 28 July 2016 (UTC)
- Try this:
xwp file
[edit]How do I install a .xwp file? Can someone help me please? I collected some clock gadgets a while back from this website. After downloading and opening the WinRar folder, I found a .xwp file - if I re-extract this .xwp file, I find a Widget folder which consisting all the bits. Problem is I still don't know how to install... -- Apostle (talk) 18:12, 27 July 2016 (UTC)
- Your link goes to Google Images and doesn't open any particular image for me. You need to link to the actual web site, not Google Images.
- After 60 seconds of research (googling "xwp gadget") I found XWidget which seems to use .xwp files, so maybe that's what you need. I know nothing about it, though. -- BenRG (talk) 23:27, 28 July 2016 (UTC)