このプログラムでは、JavaScriptの正規表現を使用して、複数行のテキストから特定の単語を含む行を抽出します。
複数行のテキスト処理プログラム
以下のコードでは、以下の複数行テキストから”expressions”という単語を含む行を取得しています。
JavaScript is great.
Regular expressions are powerful.
You can match anything in multiple lines.
Let’s practice with some code!
HTMLとJavaScriptコード
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>正規表現で複数行のテキストを処理する方法</title>
<script>
window.onload = function() {
// 複数行テキストから特定の行を抽出する関数
function findLinesContainingWord(text, word) {
// 複数行を考慮した正規表現
const pattern = new RegExp(`^.*${word}.*$`, 'gm');
return text.match(pattern); // 正規表現で一致する行をすべて取得
}
// テスト用の複数行テキスト
const multilineText = `
JavaScript is great.
Regular expressions are powerful.
You can match anything in multiple lines.
Let's practice with some code!
`;
// 特定の単語を含む行を抽出
const result = findLinesContainingWord(multilineText, "expressions");
// 結果をHTMLに表示
document.getElementById('result').textContent = result ? result.join("\n") : "一致する行はありません。";
}
</script>
</head>
<body>
<h1>正規表現で複数行のテキストを処理する方法</h1>
<div id="result"></div>
</body>
</html>
プログラムの解説
このプログラムでは、正規表現を使用して複数行のテキストから特定の単語を含む行を抽出しています。new RegExp(pattern, 'gm')
とすることで、正規表現が複数行に対応します。
g
フラグは全体に対してマッチングを行い、m
フラグはテキスト全体を複数行として扱い、行の先頭と行の終わりを処理します。
以下はmatch()
メソッドおよび正規表現に関する注意点です。
match()
メソッドは、正規表現に一致するすべての結果を配列として返します。存在しない場合はnull
を返します。- 正規表現に
g
フラグがないと、最初に一致した結果のみを返します。 - 複数行の処理には
m
フラグを忘れずに使用する必要があります。これにより、テキスト全体が行ごとにマッチングされます。
RegExpオブジェクト メソッドの機能一覧
RegExpオブジェクト メソッドの機能一覧 | JavaScript リファレンス
JavaScriptのRegExpオブジェクトは、正規表現を使用して文字列のパターンを検出、操作するためのオブジェクトです。以下に、RegExpオブジェクトのメソッドをインスタンスメソッドと静的メソッドに分け、アルファベット順にまとめています。 RegExpオブジェクトのインスタンスメソッド メソッド名 説明と注意点 ...