Regex to match everything before an underscore

Hi,
I am trying to create a regular expression to match part of a file name into a variable but I can't seem to get it to work correctly.
Here is a sample from gci:
SERVERNAMEAPPUPP01_Baseline20140220.blg
SERVERNAMEWWSCOOE3_Baseline20140220.blg
SERVERNAMEWWSWEB5_Baseline20140220.blg
SERVERNAMEPNWEBWW01_Baseline20140220.blg
SERVERNAMEPNWEBWW02_Baseline20140220.blg
SERVERNAMEPNWEBWW03_Baseline20140220.blg
SERVERNAMEPNWEBWW04_Baseline20140220.blg
SERVERNAMEPNWEBWW05_Baseline20140220.blg
SERVERNAMEPNWEBWW06_Baseline20140220.blg
SERVERNAMEPNWEBWW07_Baseline20140220.blg
SERVERNAMEPNWEBWW08_Baseline20140220.blg
SERVERNAMEPNWEBWW11_Baseline20140220.blg
SERVERNAMEPNWEBWW12_Baseline20140220.blg
SERVERNAMEPNWEBWW17_Baseline.blg
SERVERNAMEPNWEBWW17_Baseline20140220.blg
SERVERNAMEPNWEBWW18_Baseline20140220.blg
SERVERNAMEPNWEBWW22_Baseline20140220.blg
SERVERNAMEPNWEBWW32_Baseline20140220.blg
SERVERNAMEPNWEBWWI01_Baseline20140220.blg
SERVERNAMEPNWEBWWI11_Baseline20140220.blg
LDVWEBWAABEC01_Baseline20140220.blg
LDVWEBWABFEC02_Baseline20140220.blg
What I am attempting to do is match from the start of the file name to the underscore(not including the underscore). This part of the file name contains the server name.
$files = gci E:\CollectedPerfLogs\20140220 -file -name $pattern ='/[^_]*/' foreach ($file in $files){ $file -match $regex $servername = $Matches[0] Write-Host "The server name is $servername" }
The problem is the regexisn't matching even though
I verified it in an online regex tester. I would appreciate any assistance in figuring out why this isn't working.

What's in your $regex variable? That wasn't included in the code you posted. You've also mashed everything onto a single line, which makes it hard to read.
Anyhow, this value for $regex should work with the rest of your code intact:
$regex = '^[^_]+'

Similar Messages

  • How do you get java regex to match two different pattern

    Hi,
    I am having trouble getting getting java regex to match two pattern: "unknown host" or "100%".
    Here is a snippet of my code:
    try{
    Process child = Runtime.getRuntime().exec(" perl c:\\ping.pl");
    BufferedReader in = new BufferedReader( new InputStreamReader( child.getInputStream() ));
    String patternStr = "(unknown host | 100 %)";
    Pattern pattern = Pattern.compile(patternStr);
    Matcher matcher = pattern.matcher(" ");
    String line = null;
    while ( (line = in.readLine()) != null){
    System.out.println(line);
    matcher.reset(line);
    if (matcher.find())
    // line matches throws pattern
    System.out.println("match string");
    else
    System.out.println("no matches");
    I thought the "|" means OR but somehow it is not working.
    kirk123

    Hi,
    with String patternStr = "(unknown host | 100 %)"; you are looking
    for the strings "unknown host " OR " 100 %", with the spaces after host and before 100.
    Try "(unknown host|100 %)"
    hope, this will help you

  • I finished adding my transtions to my timeline.  I was having crashing issues so I shut down everything before I rendered the project and now it tells me that the project is unreadable or the file is too new for this version of final cut. What Happened?

    I finished adding my transtions to my timeline.  I was having crashing issues so I shut down everything before I rendered the project and now it tells me that the project is unreadable or the file is too new for this version of final cut. What Happened?

    What Happened?
    No way for us to know.  But if your system was crashing, there definitely was a problem.  The FCE error message you got normally indicates the FCE project file has been corrupted.  This probably happened due to whatever caused your system to crash & shutting down the system.
    First, make sure your system is running correctly.  Then, use the Finder to navigate to /users/yourusername/Documents/Final Cut Express Documents/Autosave Vault and find the most recent backup copy of your FCE project file.  Copy the file to your Final Cut Express Documents folder (copy the file, don't just move it).  Then double-click the copy to open it in FCE.  It should open ok, but will probably not have your most recent edits (transitions).  You may have to rebuild the transitions, but at least you will be back in action.

  • Regex not matching an expression

    Hello, I've just started using regular expressions and I have a question: I've wanted to create a regex which matches all strings starting with <!-- and possibly ending with -->, with the exception that the string --> cannot appear in the middle of the matching text. To do this, I wrote the following pattern:
    \Q<!--\E[!(\Q-->\E)]*(\Q-->\E)?I'm quite aware that it's a bad idea not telling the regex what to match, but rather what not to match, as it is very vague and probably inefficient, however, I did expect this to work nonetheless, which it just doesn't. It does match the string "<!--" but no further (i.e, not "<!-- a"). What did I get wrong? (There's probably a much better way to do this, however, as I said, I'm a regex newbie).
    thanks,
    laginimaineb.

    The closes I got was:
    "\\Q<!--\\E[^(\\Q-->\\E)]*(?:(\\Q-->\\E)?+)"Which seemed to work well until I tried the last little sample in the below code:
    package net.luke;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class RegexEr {
          * @param args
         public static void main(String[] args) {
              //Starts with <!--, then has any characters except --> 0 or more times, and ends with --> 0 or 1 times.
              String pattern = "\\Q<!--\\E[^(\\Q-->\\E)]*(?:(\\Q-->\\E)?+)";
              String[] searches = new String[] {
                        "<!--", "<!-- Hey", "<!-- Hey \n\rThere",
                        "Hey There <!-- You dog --> you.", "Huh <!-- What did --> you say -->?",
                        "I <!-- just need --> to <!-- make up --> some strings.",
                        "But <!-- 123--456>7?-->"};
              Pattern p = Pattern.compile(pattern);
              Matcher m;
              for (int i = 0; i < searches.length; i++) {
                   m = p.matcher(searches);
                   while (m.find()) {
                        System.out.println(m.group());
    Results: <!--
    <!-- Hey
    <!-- Hey
    There
    <!-- You dog -->
    <!-- What did -->
    <!-- just need -->
    <!-- make up -->
    <!-- 123
    -- Edit --
    Which, when I clean it up doesn't turn out much different that yours:"\\Q<!--\\E[^(\\Q-->\\E)]*(\\Q-->\\E)?"Edited by: stevejluke on Jul 23, 2008 8:00 PM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Regex to match numbers but not characters

    Hey all,
    I brain must not be working right or something but I cannot for the life of me figure out how to get a regex to match numbers, but not characters.
    e.g.
    123456
    would match, but
    123abc
    would not. Essentially what I want to do is take a string and only return a match when the string has numbers but no characters.

    No, it doesn'tYes it does.
    "123abc".matches("\\d+");
    "abc123".matches("\\d+");
    "123".matches("\\d+");
    false,false,trueExcellent example demonstrating the output of a method.
    However the suggestion above was referring to a regular expression, not a method.
    And the above regular expression does match with the following methods
    "123abc".replaceAll("\\d+", "xxx");
    "abc123".replaceAll("\\d+", "xxx");
    "123".replaceAll("\\d+", "xxx");
    The correct regular expression to match only digits is....
    ^\d+$

  • I tried to update my nephew iphone 4 version 4.3.4 (8k2), I did back-up everything before attempting to update and the result when I click down-load and update, it does not update instead it says,  itunes could not contact the iphone software update etc.

    Hi to all,
    I tried to update my nephew iphone 4 version 4.3.4 (8k2), I did back-up everything before attempting to update and the result when I click down-load and update, it does not update instead it says,  itunes could not contact the iphone software update server because you are not connected to the internet. I did check my wire-less connections and the connection from my PC to wire-less is hundred percent okay. I did search using google.com to confirm and my connections is good. Is there any problem regardings my firewalls or any help will be appreciated. Thanks

    Hi bosefire,
    Thanks for visiting Apple Support Communities.
    You can use the steps in this article to troubleshoot your iTunes connection:
    Can't connect to the iTunes Store
    http://support.apple.com/kb/TS1368
    Regards,
    Jeremy

  • Why since installed Lion on my IMac it happened many times that my computer freeze and I have to restart everything before something work again?

    Why since installed Lion on my IMac it happened many times that my computer freeze and I have to restart everything before something work again?

    To get rid of "pop-up ads and other crap on my computer when I am on the internet", click on Safari in the Menu bar, and select Preferences. Next select Extensions. Delete all of them. Restart Safari.
    The first step in addressing the black screen is an SMC reset.
    Shut down the computer.
    Plug in the MagSafe power adapter to a power source, connecting it to the Mac if its not already connected.
    On the built-in keyboard, press the (left side) Shift-Control-Option keys and the power button at the same time.
    Release all the keys and the power button at the same time.
    Press the power button to turn on the computer. 
    Note: The LED on the MagSafe power adapter may change states or temporarily turn off when you reset the SMC.
    Excerpt from
    http://support.apple.com/kb/ht39

  • Help with regex pattern matching.

    Hi everyone
    I am trying to write a regex that will extract each of the links from a piece of HTML code. The sample piece of HTML is as follows:
    <td class="content" valign="top">
         <!-- BODY CONTENT -->
    <script language="JavaScript"
    src="http://chat.livechatinc.net/licence/1023687/script.cgi?lang=en&groups=0"></script>
    <a href="makeReservation.html">Making a reservation</a><br/>
    <a href="changeAccount.html">Changing my account</a><br/>
    <a href="viewBooking.html">Viewing my bookings</a><br/>I am interested in extracting each link and the corrresponding text for that link into groups.
    So far I have the following regex <td class="content" valign="top">.*?<a href="(.*?)">(.*?)</a><br>However this regex only matches the first line in the block of links, but I need to match each line in the block of links.
    Any ideas? Any suggestions are appeciated as always.
    Thanks.

    Hi sabre,
    thanks for the reply.
    I am already using a while loop with matcher.find(), but it still only returns the first link based on my regex.
    the code is as follows.
    private static final Pattern MENU_ITEM_PATTERN = compilePattern("<td class=\"content\" valign=\"top\">.*?<a href=\"(.*?)\">(.*?)</a><br>");
    private LinkedHashMap<String,String> findHelpLinks(String body) {
        LinkedHashMap<String, String> helpLinks = new LinkedHashMap<String,String>();
        String link;
        String linkText;
          Matcher matcher = MENU_ITEM_PATTERN.matcher(body);
          while(matcher.find()){
            link = matcher.group(1);
            linkText = matcher.group(2);
            if(link != null && linkText != null){
              helpLinks.put(link,linkText);
        return helpLinks;
    private static Pattern compilePattern(String pattern) {
        return Pattern.compile(pattern, Pattern.DOTALL + Pattern.MULTILINE
            + Pattern.CASE_INSENSITIVE);
      }Any ideas?

  • What is the Scan from string pattern for "match everything" ?

    Hello,
    Using Scan from string for a while, I know that %s only matches string up to a whitespace. And I also thought %[^] would match everything including whitespaces. But it turned out that it would stop at the closing square brace.
    So, what is the real scan pattern for match everything including whitespaces ?

    What do you want the Scan From String to end on?  Or are you just grabbing the rest of the string?  If that is your scenario, then just use the "remaining string" output.  It might help if you give a full example of a normal input string and EVERYTHING you want as an output.

  • Regex is matching more than what I want

    Hi!
    I'm trying to make my application scan webpages for .zip file links using Regex.
    But instead of just matching the link, it also matches some HTML tags before that.
    This is my code:
    'This is the pattern I use: (https?:\/\/)?([A-Z]+)?\.?([A-Z]+)?\.?([A-Z]+)?\/?(.+)?(\.zip)
    'Adding ^ and $ around it makes it match nothing.
    Public Class Form1
    Dim WithEvents client As New WebClient
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    client.DownloadStringAsync(New Uri(TextBox1.Text))
    End Sub
    Private Sub client_DownloadStringCompleted(sender As Object, e As System.Net.DownloadStringCompletedEventArgs) Handles client.DownloadStringCompleted
    RichTextBox1.Text = e.Result.ToString
    Dim Pattern As String = "(https?:\/\/)?([A-Z]+)?\.?([A-Z]+)?\.?([A-Z]+)?\/?(.+)?(\.zip)"
    Dim RgEx As New Regex(Pattern, RegexOptions.IgnoreCase)
    Dim mc As MatchCollection = RgEx.Matches(RichTextBox1.Text)
    For Each m As Match In mc
    RichTextBox1.Select(m.Index, m.Length)
    RichTextBox1.SelectionBackColor = Color.Yellow
    Next
    RichTextBox1.SelectionStart = 0
    RichTextBox1.SelectionLength = 0
    RichTextBox1.SelectionBackColor = Color.White
    MessageBox.Show(mc.Count & " matches found", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End Sub
    End Class
    This pattern:
    "(https?:\/\/)?([A-Z]+)?\.?([A-Z]+)?\.?([A-Z]+)?\/?(.+)?(\.zip)"
    Matches this in a webpage:
    <P align=center><SPAN style="FONT-SIZE: 16pt"><FONT color=#ffffff><A href="http://www.mydoomsite.com/programs/programs/Doom%20Writer%20Setup%20v2.0.0.zip
    But I only want it to match the link itself:
    http://www.mydoomsite.com/programs/programs/Doom%20Writer%20Setup%20v2.0.0.zip
    Any suggestions?
    //Visual Vincent
    EDIT:
    I want it to be able to match the most kinds of links. Such as if the link only were "/programs/Doom%20Writer%20Setup%20v2.0.0.zip" or "/Doom%20Writer%20Setup%20v2.0.0.zip".
    I hope your day has been better than yesterday, but that it's worse than tomorrow...
    Please mark as answer if I solved your problem. :)

    Thanks, this worked better than mine.
    BUT it won't match links that are written like this: "/directory/file.zip"
    Keep in mind that this is supposed to work for all sites, and some only have links like the one above, or just "/file.zip".
    I hope your day has been better than yesterday, but that it's worse than tomorrow...
    Please mark as answer if I solved your problem. :)
    After seeing numerous webpage code over time I would guess /directory/file.zip or /file.zip are preceded in some fashion by other code that contains the rest of the link for those two locations.
    Perhaps those two locations are preceded by some type of statement that means include this part of the main link when somebody clicks on one of those two files to download or something. Of course that would have nothing to do with regex as it would
    being able to decipher how the HTML code for a specific site works when selecting a file to download. Then perhaps being able to get the entire link for either of those two downloads.
    Which links does the regex work for and which does it not work for with regard to the main link you are interrogating HTML content from? 
    La vida loca
    Some of the things I know about HTML is that if you just type /file.zip the webbrowser will try to download it from the same location as it's currently in. So if you are on the page http://www.example.com/files/index.html it will try to Download /file.zip from
    http://www.example.com/files/file.zip.
    The link I am scanning is just a page from my own website, where I've uploaded some of my applocations in .zip files. :)
    Though the regex is supposed to find links on any website. It's the user's choice.
    I hope your day has been better than yesterday, but that it's worse than tomorrow...
    Please mark as answer if I solved your problem. :)

  • Why does the iCal app on my MacBook Pro only have a 2-year archive? Where did everything before that go? And can I get it back?

    I use my iCal as a daybook and every now and again need to reference events or occurences from several years ago. I tried to look something up from back in 2010 and the iCal on my MacBook Pro only has iCal data from Jan 1, 2011 onwards. Everything I've put in prior to that seems to have disappeared! I can't find anything under preferences that mentions archiving/storage. Can I change the setting so that this info is kept forever? And can I get my previous info back?

    You can only sync with one computer. When you synced to the new computer it would have erased it and synced what was on the new computer.
    You always need to have a backup, an iPhone is not a storage device.
    When you get a new computer you need to transfer your library before syncing
    If you don't have a backup you may be out of luck
    The only thing would be if you're in the US and have access to the iCloud beta to reload purchases
    http://support.apple.com/kb/ht2519

  • PC taking a LONG time to load everything before the win logo, after BIOS update.

    Every single time I turn on my PC, it takes a REALLY long time to start the first DOS-like screen and then it takes another while before the windows logo shows up. About 4-5 mins before the win logo. It used to be fast and sweet before updating my MSI MB BIOS...
    It all started when I updated the BIOS the first time (I just thought it was something good to do). The start up took a long time like 25% of the times and it got worse every month. I tried changing the config in the BIOS but nothing helped, so recently I decided to update the BIOS again with a flash drive step by step as indicated in the MSI website with their software, only to find out that the problem got worse and that it happened 100% of the times I turn my PC on.
    When the start-up is slow, it gets stuck in that black pre-DOS like screen, showing a "B4" in the bottom right corner. After that the usual first screen with some info shows up for about 3 seconds, then it all goes black again and shows some other pair of codes on the same corner (B2, A4,....)
    Today I tried manuallly reseting the MB to see if it helped (I removed the battey for a while, then used the reset CMOS button to make sure). It did not help at all. I have tried changing the hard drives from IDE to AHCI but windows 8 won't start: after showing its logo for a while, it shows a blue screen of death with the sad smily :( and tries to reset (I have to manually reset it afterwards). I have one 2TB WD green hard drive and one SSD in which I have windows 8 installed.
    I found some text today on the MB MSI website on the BIOS versions page... which I didn't see at the time, and it shows up only in my smartphone: "We recommend to only update to the M8 class module if you have an Ivy bridge processor. There is no way to go back to the previous M module after the update" (this is from memory by the way)
    Something to add, I used the Crystal Disk Info software to check my drives and it showed the were in good condition. Then used CrystalDiskMark 3.0.3 to test them and got low numbers in my opinion; for the WD green
       Sequential Read : 76 MB/s, Random Read 512KB : 26 MB/s, Random Write 512KB : 41 MB/s.
    And for the SSD
       Sequential Read : 167 MB/s, Random Read 512KB : 161 MB/s, Random Write 512KB : 111 MB/s
    My relevant PC parts are:
    Intel i5 2500k (sandy bridge)
    MSI Z68A GD65 (B3)
    SSD Mushkin Chronos 120GB SATA 6GB-s (windows 8.1 installed here) (MKNSSDCR120GB)
    2TB Western Digital HD (WD20EARS)
    2x Ati 6950 crossfire
    I also already tried turning it ON with everything disconnected, changing the video card slots, using only one... etc.
    Any ideas on how to fix this or what's causing it? I really need some help here...  If you need more info, I will be checking this constantly and will deliver your requests.

    Quote from: dan.djh on 30-November-14, 23:06:20
    I already fixed the IDE to AHCI problem, which was the minor one. Solution for this: Use regedit to change HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\storahci\"Error Control" to 0 and delete StartOverride. Then you should be able to go into BIOS and change to AHCI mode. You'll need to do this again if you ever start up in IDE mode.
    But I still need to fix the main one which is the slow startup... please help!
    B4 is a USB problem! what USB devices do you have plugged in? (if its a keyboard and/or Mouse please say what they are like make and model!)

  • Using the regex to match the file name with date time

    Hello all,
    currently I had problem to match the following file name with the date time. Of course I can use this regex like ""(\\\\w+|.+).(zip)" to match it. However in the current application i need to parse the file name and get the current date time to check if it is matched. Does anyone have good idea?
    {code}
    testfile10-08-09-2008-08-21-04-24-0443.zip
    testfile11-08-09-2008-08-22-04-24-0441.zip
    {code}
    thanks in advanced!

    lauehuang wrote:
    Hello all,
    currently I had problem to match the following file name with the date time. Of course I can use this regex like ""(\\\\w&#43;|.&#43;).(zip)" to match it.That regex doesn't make a lot of sense:
    - with "\\\\w" you probably meant "\\w";
    - "\\w&#43;|.&#43;" doesn't make sense: you can simply do ".&#43;" in that case;
    - ".(zip)" will also match the string "%zip" or "Ezip".
    However in the current application i need to parse the file name and get the current date time to check if it is matched. I don't know what you mean by that.

  • Problem with regex patter/matcher

    Hello, I used some code I found in the tutorial and the forums to accomplish some html pattern matching. I'm just now learning regex and I can't figure out how to find each occurance of my pattern. Here's the code.
    import java.util.regex.*;
    public class Parser {
         public Parser() {
         public static void main(String[] args) {
              String INPUT = "<tr><td>1st cell</td><td>2nd cell</td></tr>";
              String REGEX = "<td>.*</td>";
              Pattern p = Pattern.compile(REGEX);
              Matcher m = p.matcher(INPUT);
              int count = 0;
              while(m.find()) {
                   count++;
                   System.out.println("Match number " + count);
                   System.out.println("start(): " + m.start());
                   System.out.println("end(): " + m.end());
    }output is:
    Match number 1
    start(): 4
    end(): 38I'm looking for a match for each cell, not the outermost match... I hope that made sense.
    Thanks for the help!

    sabre, i guess your hint is nicer, uh ? ;-)I prefere your regex because I like a closed form of
    termination condition rather than the open .*. I
    suspect that both will work OK for the OP.Funny, I was about to sugest the same you sugested when I hit your post, I prefer the one wiht the lazy search.
    Also, just for fun, I would sugest to do a more generic one with:
    "<(.*?)>(.*?)<\\1>"
    and just because it is fun:
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    * HtmlParser.java
    * version 1.0
    * 14/07/2005
    * @author notivago
    public class HtmlParser {
        public static void main(String[] args) {
            new HtmlParser().parse( "<tr><td>1st cell</td><td>2nd cell</td></tr>" );
        private Pattern pattern = Pattern.compile("<(.*?)>(.*?)</\\1>");
        public void parse( String input) {
            Matcher matcher = pattern.matcher(input);
            while( matcher.find() ) {
                show(matcher);
                parse( matcher.group(2) );
         * @param matcher
        private void show(Matcher matcher) {
            System.out.println( "Tag: " + matcher.group(1) );
            System.out.println( "Content: " + matcher.group(2) );
            System.out.println( "----");
    }

  • I have an intel iMac OS X 10.8.3 and haven't yet backed up anything. Please advice on best ways of backing up everything before it's too late - external drive etc.

    I have in Intel iMac OS X 10.8.3 and haven't yet backed up anything.  Please advise on best ways of backing up everything (external drive etc?) before it's too late.

    Buy any external hard drive - USB/Firewire/Thunderbolt, etc that is compatible with your Mac. Opinions will vary, but I use Western Digital externals without problem, others will suggest LaCie, but there are no shortage of other manufacturers making equally good drives, I'm sure. It's preferable to buy a drive that is equal to the size of your internal HD, some will say twice the size. Mine are less than the size of my internal HD, but I don't have masses of data.
    The simple and free option is to then connect the drive to the Mac and turn on Time Machine. Leave the drive permanently connected and it will backup your data regularly.
    An alternative, and my preferred option is to use SuperDuper! or Carbon Copy Cloner to make regular bootable clones of your drive. Some (me included) keep multiple backups - clones and TMachine.
    When I had my HD replace recently I re-installed from the clone and was back where I left off in around an hour.

Maybe you are looking for

  • Procees for upload field in mkpf&mseg table

    Hi friends, i had return the code for uploading two fields in mkpf and mseg table  .when i am executing through f8 the updated value is not founding when we checkd through debugging the value is updating and appering in screen plz tell me how i will

  • Xml validation in File to RFC Sync Scenario with Validation fails message

    Hi All, We are using PI 7.4 (Dual Stack) the Requirement is File to RFC Sync Scenario(File <---> RFC).and need to do XML validation against XSD Schema. if any Validations fails Response message should send back to sender.RequestResponseBean standard

  • JRE 1.3.1 Bug May Screw Up Your Executable JAR File

    Hi; I just submitted this bug report to sun. It could save you a lot of pain. If you have both the JDK and a seperatley obtained Sun JRE on your computer you could build a deprecated code and not know it until you distribute your app to your user or

  • Double array

    Is there double array in java? If I want to create a list, and each element in the list is another list, how can I implement this? Sorry for posting these kinds of questions, but I can't seem to find the correct place to for such things. Thx

  • How long does business catalyst give you 5 free hosting sites for?

    BC advertises that you can host with them for free on 5 sites. How long can you host for free?