Проблемы с созданием регулярного выражения, не содержащего символ
Я хочу действовать со строками уценки в зависимости от того, начинаются ли они с одного, двух или нет.#
, но я не исключаю, что его признают титулом:
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
}
}
Как правильно исключить##
в моем первомif
Стмт?
2 ответа
Вы хотите проверить, за чем следует что-нибудь, кроме другого . Это было бы:
/^#[^#]/
Вам нужны квадратные скобки, а не скобки.
Регулярные выражения действительно не нужны. Вы можете использовать:
if string.hasPrefix("##") {
// parse subtitle
} else if string.hasPrefix("#") {
// parse title
} else {
// parse body
}
Обратите внимание, что вы хотите проверить##
прежде чем вы проверите#
.
Или с помощью более простых регулярных выражений:
if string.contains(/^##/) {
// parse subtitle
} else if string.contains(/^#/) {
// parse title
} else {
// parse body
}