knowledge9876
@knowledge9876

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

正規表現で、ある文字からある文字に行くまでに特定文字が4回まで含まれるときはマッチするというのはどう書けばいけますでしょうか?

ある文字とは、蟹蟹蟹蟹のように隣り合わせで隣接しているのではない場合の正規表現です。

例文
◆から▼までをマッチさせるときに内部に蟹が0個から4つまで含まれる場合にマッチしたい

マッチする
たたたたた◆蟹れれれ蟹れれれ蟹ままま蟹んんんんすすすす▼りりりり
たたたたた◆れれれれれれ蟹ままま蟹んんんんすすすす▼りりりり

たたたたた◆れれれれれれまままんんんんすすすす▼りりりり

マッチしない
たたたたた◆蟹れれれ蟹れれれ蟹ままま蟹んんんん蟹すすすす▼りりりり

0

2Answer

Comments

  1. @knowledge9876

    Questioner

    うまく思い通りに動きました。ありがとうございます。

正規表現だけでの良い回答が思い付きませんでしたが、その要件だったら個人的には正規表現との合わせ技で以下のようにすると思います。


const isMatched = (text) => {
  const matched = text.match(/◆(.+?)▼/)
  if (!matched) return false

  const substring = matched[1]
  const arr = substring.split("")
  return arr.length < 6
}

isMatched("たたたたた◆蟹れれれ蟹れれれ蟹ままま蟹んんんんすすすす▼りりりり")
// true

isMatched("たたたたた◆れれれれれれ蟹ままま蟹んんんんすすすす▼りりりり")
// true

isMatched("たたたたた◆蟹れれれ蟹れれれ蟹ままま蟹んんんん蟹すすすす▼りりりり")
// false

isMatched("たたたたた◆れれれれれれまままんんんんすすすす▼りりりり")
// true

1Like

Comments

Your answer might help someone💌