LANG SELRCT

Google Apps Scriptのコードを書く場所  (新規作成: スプレッドシート | スクリプトエディタ

2019年4月30日火曜日

正規表現で英数以外のテキストの間にある半角スペースを削除したい


今回試した正規表現

/(?<![a-zA-Z0-9!?])[\s ](?![a-zA-Z0-9])/g



Good morning! お は よ!



Good morning! おはよ!

にする



コード.gs
function doGet() {
  return HtmlService.createHtmlOutputFromFile("index");
}
意訳
この機能がやること
指定したHTMLファイルを表示する




index.html
<!DOCTYPE html>
<html>
<body>
<script>
myFunction();
function myFunction() {
  var text = 'Good morning! お は よ!';
  text = text.replace(/(?<![a-zA-Z0-9!?])[\s ](?![a-zA-Z0-9!?])/g, "");
  console.log(text);
}
</script>
</body>
</html>



補足

.gs側では「SyntaxError: 量指定子 ? は無効です。」と出て ? は使えないようなので、.htmlでやっています。


テキスト画像をOCR化したときに改行が半角スペースになることがあり、その半角スペースを消したくて書きました。


var text = 'Good morning! お は よ!';
text = text.replace(/(?<![a-zA-Z0-9])[\s ](?![a-zA-Z0-9])/g, "");

=> Good morning!おはよ!

これだと ! のあとの半角スペースも消えるので


!と?も対象にして

/(?<![a-zA-Z0-9!?])[\s ](?![a-zA-Z0-9])/g,

としたのが今回試した正規表現です。


最新の投稿

選択したテキストを配列に入れてテキストエリアに出力したい

今回やりたいこと アプリケーションの中で 選択したテキストを取得する。 選択したテキストを テキストエリアに入れる。 選択したテキストを 配列に追加していく。 STEP1 「テキストを」を選択するとテキストエリアに「テキストを」が入る。 STEP2 その後、「追加して」を選択する...