I want to act on markdown strings depending on whether they start with one, two or no #
, but I am failing to rule ##
out for being recognized as a title:
let strings = ["# Fancy Title", "## Fancy Subtitle", "Body Content")
for string in strings {
if string.contains(/^#(^#)/) { //string should only contain **one** #, but `strings[0]` falls through now …
// parse title
} else if string.contains(/^##/) {
// parse subtitle
} else {
// parse body
}
}
How do I properly exclude ##
in my first if
stmt?
You want to check for
#
followed by anything that isn't another#
. That would be:You wanted square brackets, not parentheses.
There's really no need for the regular expressions. You could use:
Note that you want to check for
##
before you check for#
.Or with simpler regular expressions: