```python
def is_bored(S):
    """
    You'll be given a string of words, and your task is to count the number
    of boredoms. A boredom is a sentence that starts with the word "I".
    Sentences are delimited by '.', '?' or '!'.
   
    For example:
    >>> is_bored("Hello world")
    0
    >>> is_bored("The sky is blue. The sun is shining. I love this weather")
    1
    """
    import re
    # Split the string into sentences using '.', '?', or '!' as delimiters
    sentences = re.split(r'[.?!]', S)
    count = 0
    for sentence in sentences:
        # Strip whitespace from the sentence
        sentence = sentence.strip()
        # Check if the sentence starts with the word "I"
        if sentence.startswith("I"):
            # Ensure that "I" is a standalone word (not part of another word)
            # The first word should be exactly "I"
            words = sentence.split()
            if words and words[0] == "I":
                count += 1
    return count
```