質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

解決済

3回答

264閲覧

正規表現を用いてコーディングがしたい

mimicon

総合スコア26

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

0クリップ

投稿2018/12/31 03:37

ワードで頂いた文章を秀丸エディタにペーストし、liダグで囲みたいのですが、
文末は全て「。」があったので、検索「。¥n」置換「。</li>¥n」で置換をしました。
文頭に<li>をつけたいのですが、文中には見出し<h1>や改行のみの行もある為、^ではできませんでした。

文末が</li>の時、文頭を<li>にする。といったような置換が行いたいです。
<li>●●●</li>¥n」

現在の状態)
私はラーメンが好きです。</li>
あなたは走るのが早いです。</li>

君は犬を飼っています。</li>

※仕事場でしか、正規表現のできるテキストエディタがない為、
実際に試すのは年明けになってしまうかと思います。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/12/31 04:08

回答者は誰も急いでませんし、年末年始で積極回答が見込めるわけではありません。 質問要件に関係のない文言はない方が良いです。
m.ts10806

2018/12/31 04:09

これは「テキストエディタによる回答」をお求めということでしょうか? そのあたりきちんと記載された方が的確な回答をのぞめると思います
yoshinavi

2018/12/31 04:29 編集

「秀丸エディタ」の使い方であれば、質問タグに「秀丸」タグをつけると良いかと思います。
think49

2018/12/31 04:54

"仕事場でしか、正規表現のできるテキストエディタがない"ということですが、正規表現を扱えるテキストエディタは秀丸エディタ以外にもあります。秀丸に近いUIでいえば、Notepad++はいかがでしょうか。 https://notepad-plus-plus.org/
guest

回答3

0

全てを自動で処理しようとせず半自動化・部分的自動化を考えたほうが、問題の早期解決につながることがあります。

  1. 「。¥n」を「。</li>¥n<li>」で置換
  2. 最初の行の先頭に手で<li>を補う

投稿2018/12/31 04:08

KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

文頭に<li>をつけたいのですが、文中には見出し<h1>や改行のみの行もある為、^ではできませんでした。

期待通りでない文例がないのが問題ですが、憶測で対応するなら、

JavaScript

1'use strict'; 2const string = `私はラーメンが好きです。 3あなたは走るのが早いです。 4君は犬を飼っています。 5<h1>foo</h1> 6 <h2>bar</h2> 7piyo`; 8 9console.log(string.replace(/(^[^<>\r\n]+。$)/gm, '<li>$1</li>'));

出力結果。

HTML

1<li>私はラーメンが好きです。</li> 2<li>あなたは走るのが早いです。</li> 3<li>君は犬を飼っています。</li> 4<h1>foo</h1> 5 <h2>bar</h2> 6piyo

正規表現は文法を定義するものです。
正規表現を書く前に「マッチしたくない文法規則」「マッチしたい文法規則」がどういうものか、を明確に定義する必要があります。

Re: mimicon さん

投稿2018/12/31 04:46

think49

総合スコア18166

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

大雑把な検証しかしていないですが以下の置換でいかがでしょうか

検索 : (\s*)(.+)</li>$ 置換 : $1<li>$2</li>

正規表現って難しいですよね……調べ方もいまいちよくわからんですし(検索ワードが謎)。

今回は()内のマッチした範囲は${数字}という変数に格納されるのを利用しています。

イメージ説明

投稿2018/12/31 04:13

Bokunet

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mimicon

2018/12/31 07:19

分解して考えたところ理解できました。動画付きでありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問