ハッシュタグを検出するこの正規表現があります。その前に文字があるものと一致するべきではないため、正規表現の先頭にスペース文字があります。
/( #[a-zA-Z_]+)/gm
問題は、文頭の単語と一致しなくなったことです。この正規表現を変更して、スペースと一致するのではなく、文字の前にあるものと一致しないようにするにはどうすればよいですか。
ありがとう!
ハッシュタグを検出するこの正規表現があります。その前に文字があるものと一致するべきではないため、正規表現の先頭にスペース文字があります。
/( #[a-zA-Z_]+)/gm
問題は、文頭の単語と一致しなくなったことです。この正規表現を変更して、スペースと一致するのではなく、文字の前にあるものと一致しないようにするにはどうすればよいですか。
ありがとう!
単語の境界
\b
を示すために最初に使用します。\b
#
は単語のスターターではないため、機能しません。
文字列の先頭または前のスペースを確認してください。(?:^|\s)(\#[a-zA-Z_]+)
また、必ずエスケープして#
、コメントとして解釈されないようにしてください。
後読みなし:
pattern = /(?:^|[^a-zA-Z])#[a-zA-Z]+/
後読みあり(ただしJavascriptでは許可されていません):
pattern = "(?:^|(?<![a-zA-Z]))#[a-zA-Z]+"