Мьютекс в C # может использоваться для нескольких процессов. Вот пример для нескольких процессов, записывающих в один файл:
using (var mutex = new Mutex(false, "Strand www.jakemdrew.com"))
{
mutex.WaitOne();
File.AppendAllText(outputFilePath,theFileText);
mutex.ReleaseMutex();
}
Вам нужно убедиться, что мьютексу присвоено уникальное имя, которое будет совместно использоваться во всей системе.
Дополнительное чтение здесь:
Просто некоторые простые вещи регулярных выражений.
$facebook = "www.facebook.com/xxxxxxxxxxx";
$facebook =~ s/www\.(.*\.com).*/$1/; # get what is between www. and .com
print $facebook;
Возвращает
facebook.com
Вы также можете сделать эту работу для .net
, .org
и т. д. Что-то например:
s/www\.(.*\.(?:net|org|com)).*/$1/;
Мне нравится ответ URI. ОП запросил регулярное выражение, поэтому в честь запроса и как вызов, вот ответ, который я придумал. Справедливости ради, иногда устанавливать модули CPAN нелегко или возможно. Я работал над некоторыми проектами, которые упрощены с использованием очень специфической версии Perl, и разрешены только определенные модули.
Вот моя попытка ответить на регулярный вызов. Обратите внимание, что www.
является необязательным. Поддомены, такие как mobile.
, соблюдаются. Поиск /
не является жадным, поэтому URL-адрес с каталогами на конце будет корректно проанализирован. Я не зависим от протокола; это может быть http, https, file, sftp
.
^.*://(?:[wW]{3}\.)?([^:/]*).*$
Вход для образца:
http://WWW.facebook.com:80/
http://facebook.com/xxxxxxxxxxx/aaaaa
http://www.stackoverflow.com/yyyyyyyyyyyyyyyy/aaaaaaa
https://mobile.yahoo.com/yyyyyyyyyyyyyyyy/aaaaaaa
http://www.theregister.co.uk/
Выходной сигнал:
facebook.com
facebook.com
stackoverflow.com
mobile.yahoo.com
theregister.co.uk
EDIT: Спасибо @ikegami для дополнительной задачи. :) Теперь он поддерживает WWW
в любом смешанном случае и номер порта, например :80
.
http://mobile.google.com/
? https://www.facebook.com/
? HTTP://www.facebook.com/
? http://www.com/
? http://www3.com/
?
– ikegami
26 March 2013 в 04:40
https://www.facebook.com/
HTTP://www.facebook.com/
и http://www3.com/
. Фундаментальные недостатки дизайна предотвращают исправления для других.)
– ikegami
26 March 2013 в 07:17
mobile.google.com
или google.com
? Это не ясно в вопросе.
– Jess
26 March 2013 в 17:50
ugly
);)
– Jess
26 March 2013 в 23:13
state $parser = Domain::PublicSuffix->new(); $parser->get_root_domain($subdomain_domain_tld);
(это то, что объяснил икегами, но без необходимости разбора URL-адреса). Спасибо ikegami.
– lepe
21 July 2015 в 09:48
$a="http://www.stackoverflow.com/yyyyyyyyyyyyyyyy";
if($a=~/\/\/\w+\.(.*)\// )
{ print $1; }
else
{ print "false"; }
Это может быть полезно ...
^https?:\/\/www\.([\da-zA-Z\.-]+)
Пример ввода:
http://www.banglanews24.com/detailsnews.php
nssl=763daee77dc90b1c1baf0a361be2ff3c&nttl=20130416072403189462
http://www.prothom-alo.com/detail/date/2013-04-20/news/3463
http://www.facebook.com/xxxxxxxxxxx
http://www.stackoverflow.com/yyyyyyyyyyyyyyy
Выходной сигнал:
banglanews24.com
prothom-alo.com
facebook.com
stackoverflow.com
http
илиhttps
протокол. Что делать, если нетwww.
. Что делать, если есть URL, например mobile.google.com/a/b . Проверка косой черты в регулярном выражении жадна. Вы можете исправить некоторые из этих проблем, но вам, вероятно, придется укусить регулярное выражение. Это достойный ответ и решает проблему для ввода образца, но не всех возможных URL-адресов ... – Jess 26 March 2013 в 04:32http://www.google.ca/
. Не удалось выполнитьhttp://www.theregister.co.uk/
– ikegami 26 March 2013 в 04:33