Часть моего регулярного выражения: /<a .*?(" "|"")(href)
. Внутри (" "|"")
я пытаюсь сказать совпадение либо с пространством, либо без пробела, но я ничего не могу извлечь из него. Ive также пробовал ("\s"|"")
без каких-либо результатов.
Regex- Пространство или свободное пространство
Ответ 1
"пробел или пробел" - это то же самое, что "ноль или одно пространство", или, возможно, "ноль или больше пробелов", я не уверен, что вы хотите.
В следующем обсуждении я собираюсь использовать <space>
для представления одного пробела, так как одно место трудно увидеть в коротких фрагментах кода. В текущем регулярном выражении вы должны использовать фактический пробельный символ.
нуль-одно-пространство представляется как одно пространство, за которым следует знак вопроса (<space>?
). Это будет соответствовать нулю или одному пробелу. Если вы хотите совместить нуль или любое количество пробелов, замените ?
на *
(например: <space>*
)
Если по "пробелу" вы на самом деле означаете "любой символ пробела" (например, вкладку), вы можете использовать \s
, который большинство движков регулярных выражений преобразует в виде пробелов. Таким образом, нулевой или любой из символов пробела будет \s?
, а нуль или больше будет \s*
Ответ 2
Другие альтернативы для проблемы space
или no-space
(обратите внимание на пробелы в начале в некоторых):
[ ]{0,1}
{0,1}
[ ]?
?