Please correct my English.

The lemming formerly known as:

  • 15 Posts
  • 53 Comments
Joined 7 months ago
cake
Cake day: December 31st, 2024

help-circle





  • Here is my cheatsheet that has been very helpful. Obviously, this will not teach you how RegEx works, but is a good quick reference when I forget the exact syntax for something.

    RegExp

    Character classes

    Pattern Description
    . Any character, except newline
    \w Word
    \d Digit
    \s Whitespace
    \W Not word
    \D Not digit
    \S Not whitespace
    [abc] Any of a, b, or c
    [a-e] Characters between a and e
    [1-9] Digit between 1 and 9
    [[:print:]] Any printable character including spaces
    [^abc] Any character except a, b or c

    Anchors

    Pattern Description
    \G Start of match
    ^ Start of string *
    $ End of string *
    \A Start of string
    \Z End of string
    \z Absolute end of string
    \b A word boundary
    \B Non-word boundary
    ^abc Start with abc
    abc$ End with abc

    For multiline patterns (m flag), ^ and $ will act as start and end of line.

    Escaped characters

    Pattern Description
    \. \* \\ Escape special character used by regex
    \t Tab
    \n Newline
    \r Carriage return

    Groups

    Pattern Description
    (abc) Capture group
    (a|b) Match a or b
    (?:abc) Match abc, but don’t capture
    \1 Substituted with text matched of the 1st capturing group

    Quantifiers

    Pattern Description
    a* Match 0 or more
    a+ Match 1 or more
    a? Match 0 or 1
    a{5} Match exactly 5
    a{,3} Match up to 3
    a{3,} Match 3 or more
    a{1,3} Match between 1 and 3

    Lookahead & Lookbehind

    Pattern Description
    a(?=b) Match a in baby but not in bay
    a(?!b) Match a in Stan but not in Stab
    (?<=a)b Match b in crabs but not in cribs
    (?<!a)b Match b in fib but not in fab
    (?<![a-z])abc(?![a-z]) Match abc without any letters before/after
    Raw Markdown
    # RegExp
    
    ## Character classes
    
    | Pattern       | Description                              |
    | ------------- | ---------------------------------------- |
    | `.`           | Any character, except newline            |
    | `\w`          | Word                                     |
    | `\d`          | Digit                                    |
    | `\s`          | Whitespace                               |
    | `\W`          | Not word                                 |
    | `\D`          | Not digit                                |
    | `\S`          | Not whitespace                           |
    | `[abc]`       | Any of a, b, or c                        |
    | `[a-e]`       | Characters between `a` and `e`           |
    | `[1-9]`       | Digit between `1` and `9`                |
    | `[[:print:]]` | Any printable character including spaces |
    | `[^abc]`      | Any character except `a`, `b` or `c`     |
    
    ## Anchors
    
    | Pattern | Description            |
    | ------- | ---------------------- |
    | `\G`    | Start of match         |
    | `^`     | Start of string \*     |
    | `$`     | End of string \*       |
    | `\A`    | Start of string        |
    | `\Z`    | End of string          |
    | `\z`    | Absolute end of string |
    | `\b`    | A word boundary        |
    | `\B`    | Non-word boundary      |
    | `^abc`  | Start with `abc`       |
    | `abc$`  | End with `abc`         |
    
    For multiline patterns (`m` flag), `^` and `$` will act as start and end of line.
    
    ## Escaped characters
    
    | Pattern    | Description                            |
    | ---------- | -------------------------------------- |
    | `\. \* \\` | Escape special character used by regex |
    | `\t`       | Tab                                    |
    | `\n`       | Newline                                |
    | `\r`       | Carriage return                        |
    
    ## Groups
    
    | Pattern   | Description                                              |
    | --------- | -------------------------------------------------------- |
    | `(abc)`   | Capture group                                            |
    | `(a\|b)`  | Match `a` or `b`                                         |
    | `(?:abc)` | Match `abc`, but don't capture                           |
    | `\1`      | Substituted with text matched of the 1st capturing group |
    
    
    ## Quantifiers
    
    | Pattern  | Description           |
    | -------- | --------------------- |
    | `a*`     | Match 0 or more       |
    | `a+`     | Match 1 or more       |
    | `a?`     | Match 0 or 1          |
    | `a{5}`   | Match exactly 5       |
    | `a{,3}`  | Match up to 3         |
    | `a{3,}`  | Match 3 or more       |
    | `a{1,3}` | Match between 1 and 3 |
    
    ## Lookahead & Lookbehind
    
    | Pattern                  | Description                                  |
    | ---                      | ---                                          |
    | `a(?=b)`                 | Match `a` in `baby` but not in `bay`         |
    | `a(?!b)`                 | Match `a` in `Stan` but not in `Stab`        |
    | `(?<=a)b`                | Match `b` in `crabs` but not in `cribs`      |
    | `(?<!a)b`                | Match `b` in `fib` but not in `fab`          |
    | `(?<![a-z])abc(?![a-z])` | Match `abc` without any letters before/after |
    


  • You do. That comment of mine, as is, is entirely worthless.

    The sender (in this case, that would be me) needs to encrypt the message using either:

    1. The public key of the recipient
    2. A custom passphrase
    3. Any combination of the above, including multiple different public keys

    That way, the only people who can decrypt the message is a person with the private key that is paired with any of the public keys that the message was encrypted with OR literally anybody that happens to have the passphrase it was encrypted with.

    I think I had encrypted that message using just my own public key, so as I said, the message is completely useless to anybody but myself.