1

検証を検討しているタスクがあります。アルファベット形式の8桁の数字が連続して含まれている場合、文字列をトリミングしたいと思います。例:

「スリーフォーファイブツースリーフォーワンツー」または「スリーフォーファイブファイブツースリーフォーワンツー」

これや他の提案に対して、正規表現が可能かどうか疑問に思います。

JavascriptまたはJavaのいずれかである可能性があります

入力文字列: "サンプル文字列34 5 5 2 3 4 12remainimg文字列"

また

入力文字列:「サンプル文字列threefourfivefivetwothreefouronetworemainimg文字列」

私の期待する文字列:"サンプル文字列remainimg文字列"

ありがとう、ジビー

4

2 に答える 2

1

これはJavascriptで機能するはずです:

str.replace(
    /(?:(?:zero|one|two|three|four|five|six|seven|eight|nine)\s*){8,}/g,
    ""
);
于 2012-12-12T11:30:39.523 に答える
-1

例のように数字が綴られていて、JavaScriptで必要な場合は、次のことを試してください。

var eightDigitsRegex = /(?:(?:zero|one|two|three|...|nine)\s*){8,}/;
if (string.match(eightDigitsRegex)) {
    // It matches.
}

の中央に残りの数字を追加してくださいeightDigitsRegex

  • (?:)非キャプチャグループです
  • zero|...|nine-数字の選択肢
  • {8}-繰り返し回数(任意の桁に対応する非キャプチャグループは8回遭遇します

編集:ここで一致する正規表現のみ。「トリミング」とは正確に何であるかを明確にしてください。一致した部分文字列を削除しますか?それを囲む空白はありますか?..

于 2012-12-12T11:25:50.743 に答える