Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。
前スレ
Regular Expression(正規表現) Part14
https://mevius.5ch.net/test/read.cgi/tech/1489511075/
次スレは>>980宜しく
天ぷら等>>2以降
Regular Expression(正規表現) Part15
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/09/16(月) 22:25:11.87ID:enU8we0d51デフォルトの名無しさん
2019/11/01(金) 13:33:34.02ID:i0nQhs53 >>43
^([0-9]{8})\n((?:(?!\n[0-9]{8}\n)[\S\s])+)
^([0-9]{8})\n((?:(?!\n[0-9]{8}\n)[\S\s])+)
2019/11/01(金) 13:55:21.62ID:IH7Homqm
(?m)(^[0-9]{8}$)\n(.*?)(?=\n[0-9]{8}$|\Z)
(?m)(^[0-9]{8}$)\n(.*?)(?=\n[0-9]{8}$|\z)
↓
$1\t"$2"
(?m)(^[0-9]{8}$)\n(.*?)(?=\n[0-9]{8}$|\z)
↓
$1\t"$2"
2019/11/01(金) 14:05:57.48ID:zrbJp7o3
>>50
negative lookaheadとか書きつつ全然negativeじゃなかったわ
negative lookaheadとか書きつつ全然negativeじゃなかったわ
54デフォルトの名無しさん
2019/11/02(土) 07:00:29.25ID:Y+w4hll1 皆様ありがとうございます
最短一致と先読みを組み合わせて
(\d{8})((?:.*\n)*?)(?=\d{8})
のような感じでマッチしました
単に.*だけだと行末までで止まってしまうので明示的に.*\nの繰り返しと指定しないといけなかったようです
最短一致と先読みを組み合わせて
(\d{8})((?:.*\n)*?)(?=\d{8})
のような感じでマッチしました
単に.*だけだと行末までで止まってしまうので明示的に.*\nの繰り返しと指定しないといけなかったようです
2019/11/18(月) 01:09:59.81ID:B3FWH6HK
/(A|B*|C+|D?|E?|)+/ は /[A-E]*/ と同じなんだろうか。
2019/11/23(土) 19:09:02.72ID:S+7ZA2D+
=を含まない行を検索できる表現方法は?
2019/11/23(土) 21:06:16.66ID:8xX8HZu8
>>56
^[^=]*$
^[^=]*$
58デフォルトの名無しさん
2019/11/24(日) 19:30:30.97ID:BlMs70wA PCRE2 Version 10.34 21-November-2019
https://www.pcre.org/
https://www.pcre.org/
2019/12/07(土) 04:27:54.74ID:Dhp88CPz
今でもアクティブに更新してるのってPCREの他はre2と鬼車系くらいなのかな
昔はライブラリの話も結構してた気がするけど
昔はライブラリの話も結構してた気がするけど
2019/12/07(土) 11:10:24.58ID:hNCBwRLG
Hyperscan
2019/12/07(土) 19:19:38.35ID:S05zsHBk
テキストエディタで見えないけど何かがある状態
MacのBBEditだと逆さまの赤い「?」が表示される状態なんですけど
こういうのを正規表現で捕まえる事って出来ないですか?
MacのBBEditだと逆さまの赤い「?」が表示される状態なんですけど
こういうのを正規表現で捕まえる事って出来ないですか?
2019/12/07(土) 19:21:06.34ID:+kYKAjJc
否定で出来ない?
2019/12/07(土) 20:27:35.79ID:S05zsHBk
64デフォルトの名無しさん
2019/12/07(土) 20:32:56.16ID:tj55yZgB そういうときはバイナリエディタで開いて該当部の文字コード引きなよ。
2019/12/07(土) 20:51:47.44ID:S05zsHBk
ありがとうです
\x{7F}
でいけました
\x{7F}
でいけました
66デフォルトの名無しさん
2019/12/07(土) 21:19:40.77ID:b/g70Kck ウムラウトなどのアクセント付きアルファベットにのみ一致させる正規表現をお教えください。
2019/12/07(土) 21:54:33.96ID:hNCBwRLG
正規表現だけではまだできないんじゃないかな?
一般的には各言語が持ってるUnicodeの正規化機能を使って検索対象を基底文字+結合文字の形に正規化してから、結合文字を検索する
一般的には各言語が持ってるUnicodeの正規化機能を使って検索対象を基底文字+結合文字の形に正規化してから、結合文字を検索する
2019/12/07(土) 22:53:57.20ID:/3OJwFPr
日本語なら、NKF というライブラリがあるように、
ウムラウトなら、その国のライブラリがあるかも知れない
知らないけど
まあ、日本人に聞いても、ムダだと思うw
使っている国の人に、聞いた方がよい
ウムラウトなら、その国のライブラリがあるかも知れない
知らないけど
まあ、日本人に聞いても、ムダだと思うw
使っている国の人に、聞いた方がよい
2019/12/07(土) 23:41:45.44ID:FrJsgiML
cpanライブラリの中に一般的な正規表現集めたものがあるから
その中にあるかもね
その中にあるかもね
2019/12/08(日) 03:11:20.97ID:BNiynU8G
あるいは文字コードで標準ラテンのz(U+007A)よりあとを全て拾うように範囲指定するとか。
2019/12/08(日) 12:38:28.10ID:h14g0YSH
>>66
数は知れてるんだから普通に[ÄäÏï …]ってやればいいんじゃね?
数は知れてるんだから普通に[ÄäÏï …]ってやればいいんじゃね?
72デフォルトの名無しさん
2019/12/08(日) 14:00:42.26ID:0T/Za1/I サクラエディタの正規表現ライブラリbregonig with Onigmoの場合、大文字小文字区別なしでßや\x{00DF}がssにヒットするので困る。
2019/12/08(日) 14:15:46.03ID:B7mwO2xN
2019/12/08(日) 14:19:04.55ID:B7mwO2xN
2019/12/08(日) 17:17:16.59ID:qQWD6Mfj
[=a=]
equivalence class
equivalence class
2019/12/08(日) 17:27:54.65ID:DxA2hCcs
●Regular Expressionの使用環境
鬼雲6.2.0 &Mery
●検索か置換か?
検索
●説明
行中の1個目の=にだけマッチさせたい
意味合いとしては
(?<=^[^=\n]+)=
なんだけど
>戻り読みの式は固定文字長でなければならない。
>しかし、最上位の選択子だけは異なった文字長が許される。
だそうで+はダメみたい
(?<=^(?~=))=
戻り読みの中に非包含もダメだった
(?<=^[^=\n]|^[^=\n]{2}|^[^=\n]{3}| .... |^[^=\n]{1000})=
とかすれば無理矢理出来そうだけどもっとスマートな書き方無いかな?
鬼雲6.2.0 &Mery
●検索か置換か?
検索
●説明
行中の1個目の=にだけマッチさせたい
意味合いとしては
(?<=^[^=\n]+)=
なんだけど
>戻り読みの式は固定文字長でなければならない。
>しかし、最上位の選択子だけは異なった文字長が許される。
だそうで+はダメみたい
(?<=^(?~=))=
戻り読みの中に非包含もダメだった
(?<=^[^=\n]|^[^=\n]{2}|^[^=\n]{3}| .... |^[^=\n]{1000})=
とかすれば無理矢理出来そうだけどもっとスマートな書き方無いかな?
2019/12/08(日) 17:35:15.85ID:X/tkXkh9
^.*?\K=
2019/12/08(日) 17:45:34.12ID:DxA2hCcs
2019/12/08(日) 18:23:57.85ID:B7mwO2xN
>>75
それだとウムラウトついてないのも引っかかるよね
それだとウムラウトついてないのも引っかかるよね
2019/12/08(日) 22:21:07.36ID:DSHI20Cf
\K
いいなそれと思ったけど自分の環境では使えなかった残念
いいなそれと思ったけど自分の環境では使えなかった残念
2019/12/09(月) 17:04:00.86ID:o6YMciNa
>固定文字長で >最上位の選択子だけは異なった文字長
これはこういう意味かな
(?<=^[^=\n]{1,1000})=
これはこういう意味かな
(?<=^[^=\n]{1,1000})=
2019/12/09(月) 21:21:57.03ID:wMFl4+9a
鬼車のは (?<=ab|cd) だけじゃなく (?<=ab|cde) みたいなのも可ってことだったと思う
戻り読みを本当に後戻りしながらマッチングしてる実装ってほとんどなくて
大抵は文字列を一旦n文字分巻き戻して先読み相当の処理をするって感じになってるんで
パターンコンパイル時に「n文字分」が確定できない表現は弾かれる
戻り読みを本当に後戻りしながらマッチングしてる実装ってほとんどなくて
大抵は文字列を一旦n文字分巻き戻して先読み相当の処理をするって感じになってるんで
パターンコンパイル時に「n文字分」が確定できない表現は弾かれる
2019/12/11(水) 02:25:16.21ID:ue3GcKd8
グレップ坊や というソフト使ってますが
正規表現で、データだけ検索 データーを除外したい
どいう表記になりますか?
正規表現で、データだけ検索 データーを除外したい
どいう表記になりますか?
2019/12/11(水) 02:56:43.47ID:ivhCTlPt
データを表現する正規表現が基本
除外については反転オプションないの?
本家 grep には -v で反転する
除外については反転オプションないの?
本家 grep には -v で反転する
2019/12/11(水) 13:45:29.55ID:Jxz7JQeN
データ(?!ー)
データ(?=[^ー])
否定先読みか先読みが使えるならこれで出来る
独自のものだと適切なエスケープが必要かも
VB6ランタイム必要とあるからたぶんVBだろうけど
データ(?=[^ー])
否定先読みか先読みが使えるならこれで出来る
独自のものだと適切なエスケープが必要かも
VB6ランタイム必要とあるからたぶんVBだろうけど
8684
2019/12/14(土) 01:37:01.84ID:atjDTluR 下のほうで行けました
2020/01/02(木) 13:19:03.26ID:MApT2CVk
●Regular Expressionの使用環境
sed-4.7-x64.exe
(Gnu sed4.7のwindows版 https://github.com/mbuilov/sed-windows)
Windows 8.1(64)のPowerShellで実行
●検索か置換か?
置換(削除)
●説明
行頭から6文字目を削除して、行頭から2文字目の後に一文字挿入したい
●対象データ
1229日 1400
1230月 1500
1231火 1500
●希望する結果
12/29日1400
12/30月1500
12/31火1500
sed.exe -e "s/(?<=^.{5})\s//" .\ファイル.txt
としたら6文字目のスペースが削除されるかと思ったけどうまくいかない
ファイルはUTF-8で改行はCRLFです
sed-4.7-x64.exe
(Gnu sed4.7のwindows版 https://github.com/mbuilov/sed-windows)
Windows 8.1(64)のPowerShellで実行
●検索か置換か?
置換(削除)
●説明
行頭から6文字目を削除して、行頭から2文字目の後に一文字挿入したい
●対象データ
1229日 1400
1230月 1500
1231火 1500
●希望する結果
12/29日1400
12/30月1500
12/31火1500
sed.exe -e "s/(?<=^.{5})\s//" .\ファイル.txt
としたら6文字目のスペースが削除されるかと思ったけどうまくいかない
ファイルはUTF-8で改行はCRLFです
2020/01/02(木) 13:33:45.38ID:LqVuN/CI
2020/01/02(木) 13:48:39.30ID:MApT2CVk
何も削除されずに元のファイルがそのままです。
エラー表示等はないです。
エラー表示等はないです。
2020/01/02(木) 16:53:21.09ID:gZNl6+48
^(.{2})(.{3}).(.*)$
$1/$2$3
$1/$2$3
2020/01/02(木) 17:35:51.43ID:fx8yTANL
sed -i ?
2020/01/02(木) 18:35:38.12ID:gZNl6+48
sed -E "s/^(..)(...)\s(.*)/\1\/\2\3/" .\ファイル.txt
2020/01/13(月) 16:24:20.40ID:pG6qAwQV
●Regular Expressionの使用環境
正規表現の本・テキストで疑問に思った部分ですので特に環境は無いです
●対象データ
太郎はテニス部のキャプテンです。
太郎はサッカー部のキャプテンです。
太郎は野球部のキャプテンです。
太郎はバスケ部のキャプテンです。
●検索か置換か?
検索
●希望する結果
太郎はテニス部のキャプテンです。
太郎はサッカー部のキャプテンです。
太郎は野球部のキャプテンです。
●説明
通常の 太郎は(テニス|野球|サッカー)部のキャプテンです では無く
バスケ という単語を使い正規表現を作りたいのです
()を使った場合(使わなくても バスケ を用いた方法であれば良い)
の否定文・除くの書き方がわかりません
^ を使っってみましたが上手く行きませでした
太郎は(^バスケ)部のキャプテンです。 ・・ダメ
太郎は^(バスケ)部のキャプテンです。 ・・ダメ
太郎は(\^バスケ)部のキャプテンです。 ・・ダメ
バスケ を使った場合どの様に記述すれば良いのでしょうか?
正規表現の本・テキストで疑問に思った部分ですので特に環境は無いです
●対象データ
太郎はテニス部のキャプテンです。
太郎はサッカー部のキャプテンです。
太郎は野球部のキャプテンです。
太郎はバスケ部のキャプテンです。
●検索か置換か?
検索
●希望する結果
太郎はテニス部のキャプテンです。
太郎はサッカー部のキャプテンです。
太郎は野球部のキャプテンです。
●説明
通常の 太郎は(テニス|野球|サッカー)部のキャプテンです では無く
バスケ という単語を使い正規表現を作りたいのです
()を使った場合(使わなくても バスケ を用いた方法であれば良い)
の否定文・除くの書き方がわかりません
^ を使っってみましたが上手く行きませでした
太郎は(^バスケ)部のキャプテンです。 ・・ダメ
太郎は^(バスケ)部のキャプテンです。 ・・ダメ
太郎は(\^バスケ)部のキャプテンです。 ・・ダメ
バスケ を使った場合どの様に記述すれば良いのでしょうか?
2020/01/13(月) 16:54:41.37ID:omefpgVu
否定は、(?!文字列)
でも、太郎は(?!バスケ)部の、とは書けないよ
「太郎は」に続く「バスケでない任意の1文字以上の文字列」部のキャプテンという風に考えてみてくれ
でも、太郎は(?!バスケ)部の、とは書けないよ
「太郎は」に続く「バスケでない任意の1文字以上の文字列」部のキャプテンという風に考えてみてくれ
95デフォルトの名無しさん
2020/01/13(月) 17:05:50.06ID:KqHO+Fgo2020/01/13(月) 17:19:50.81ID:isx+DaHv
太郎は(?!バスケ).*部のキャプテンです。
太郎は(?!バスケ).*
(?!.*バスケ)太郎は.*部のキャプテンです。
(?!.*バスケ)太郎.*
(?!.*バスケ).*
太郎は(?!バスケ).*
(?!.*バスケ)太郎は.*部のキャプテンです。
(?!.*バスケ)太郎.*
(?!.*バスケ).*
2020/01/13(月) 17:32:26.06ID:isx+DaHv
鬼雲 非包含
^(?~バスケ|\n)$
^(?~バスケ|\n)$
2020/01/13(月) 18:15:40.74ID:pG6qAwQV
2020/01/13(月) 18:19:19.63ID:isx+DaHv
100デフォルトの名無しさん
2020/01/14(火) 22:34:44.82ID:kxfWTRop ^(?!.*バスケ)(?=.*キャプテン)(?=.*太郎).*
101デフォルトの名無しさん
2020/01/15(水) 00:24:06.58ID:qFZTgD7k 'あ'.match(/[あ゙い゙ゔえ゙お゙]/u)
(環境依存文字ですが、[]の中身は濁点つきの「あいうえお」です)
'あ'は濁点なしなのでマッチさせたくないのですがしてしまいます
これってマッチしないようにする方法はないですか?
JavaScriptです
(環境依存文字ですが、[]の中身は濁点つきの「あいうえお」です)
'あ'は濁点なしなのでマッチさせたくないのですがしてしまいます
これってマッチしないようにする方法はないですか?
JavaScriptです
102101
2020/01/15(水) 00:30:34.00ID:qFZTgD7k103デフォルトの名無しさん
2020/01/15(水) 12:08:15.81ID:lFvJ7mPZ ^(?!.*バスケ(?!ット(?!ボール(?!選手)))).*
バスケ ←不一致
バスケット ←一致
バスケットボール ←不一致
バスケットボール選手 ←一致
太郎はバスケットボール選手としてバスケ部に入部している ←不一致
太郎はバスケットボール選手としてバスケット部に入部している ←一致
バスケ ←不一致
バスケット ←一致
バスケットボール ←不一致
バスケットボール選手 ←一致
太郎はバスケットボール選手としてバスケ部に入部している ←不一致
太郎はバスケットボール選手としてバスケット部に入部している ←一致
104デフォルトの名無しさん
2020/01/15(水) 14:36:24.87ID:mWwHDwCD んなことよりバスケやろうぜ
105デフォルトの名無しさん
2020/02/09(日) 22:06:03.00ID:XBEo77KP マッチしたカッコ内の文字列をを利用する方法ってどうやるんでしたか?
http://hogehoge.jp
http://(.*).jp
このアスタリスクの部分を利用するのはどうやるんでしたかね
t1ではないです
http://hogehoge.jp
http://(.*).jp
このアスタリスクの部分を利用するのはどうやるんでしたかね
t1ではないです
106デフォルトの名無しさん
2020/02/09(日) 22:18:21.72ID:6++kPC7v107デフォルトの名無しさん
2020/02/09(日) 22:22:12.18ID:XBEo77KP $1ですねどうも
108デフォルトの名無しさん
2020/02/09(日) 22:34:23.16ID:XBEo77KP 同じ行にあるurlにhrefを加える正規表現はどうするのでしょうか
http://hoge1.jp http://hoge2.jp
↑これを
<a href="http://hoge1.jp">http://hoge1.jp</a> <a href="http://hoge2.jp">http://hoge2.jp</a>
こうしたいです
1つだけならこうできます
http://(.*).jp
http://hoge1.jp http://hoge2.jp
↑これを
<a href="http://hoge1.jp">http://hoge1.jp</a> <a href="http://hoge2.jp">http://hoge2.jp</a>
こうしたいです
1つだけならこうできます
http://(.*).jp
109デフォルトの名無しさん
2020/02/09(日) 22:34:49.85ID:XBEo77KP http://$1.jp
を忘れていました
を忘れていました
110デフォルトの名無しさん
2020/02/10(月) 14:37:14.41ID:8D13KkA5 正規表現よりも、HTML パーサーの方がよい。
Ruby のnokogiri で、HTML をパースすると、
require 'nokogiri'
doc = Nokogiri::HTML(<<EOT)
<html><body>
<a href="http://hoge1.jp">http://hoge1.jp</a>
<a href="http://hoge2.jp">http://hoge2.jp</a>
</body></html>
EOT
elements = doc.css( "a" )
# 属性・テキスト
elements.each { |elem| puts elem.get_attribute( "href" ), elem.text }
出力
http://hoge1.jp
http://hoge1.jp
http://hoge2.jp
http://hoge2.jp
Ruby のnokogiri で、HTML をパースすると、
require 'nokogiri'
doc = Nokogiri::HTML(<<EOT)
<html><body>
<a href="http://hoge1.jp">http://hoge1.jp</a>
<a href="http://hoge2.jp">http://hoge2.jp</a>
</body></html>
EOT
elements = doc.css( "a" )
# 属性・テキスト
elements.each { |elem| puts elem.get_attribute( "href" ), elem.text }
出力
http://hoge1.jp
http://hoge1.jp
http://hoge2.jp
http://hoge2.jp
111デフォルトの名無しさん
2020/02/10(月) 18:02:57.53ID:cKG4UD69112デフォルトの名無しさん
2020/02/11(火) 07:15:58.31ID:Kcy+Q8b9 >>108
.jpが末尾につく行がリンクだと仮定してjavascript
/^(.+\.jp)$/gm
上記の正規表現で
<a hef=“http://$1”>http://$1</a>
正規表現のフラグのmで複数行対応、gで複数の結果で対応出来ん?
.jpが末尾につく行がリンクだと仮定してjavascript
/^(.+\.jp)$/gm
上記の正規表現で
<a hef=“http://$1”>http://$1</a>
正規表現のフラグのmで複数行対応、gで複数の結果で対応出来ん?
113デフォルトの名無しさん
2020/02/11(火) 13:30:47.89ID:yXLnwJ70 (https?://\S+)
<a href=“\1”>\1</a>
<a href=“\1”>\1</a>
114デフォルトの名無しさん
2020/02/12(水) 09:21:48.77ID:iIu6BAwU 1) (hoge)
2) (hoge, fuga)
3) (hoge, fuga, piyo)
2) のみにマッチする正規表現のご教示よろしくお願いいたします
鬼雲
2) (hoge, fuga)
3) (hoge, fuga, piyo)
2) のみにマッチする正規表現のご教示よろしくお願いいたします
鬼雲
115デフォルトの名無しさん
2020/02/12(水) 10:28:49.15ID:bUEb5r3d hogeとfugaを後で使うと仮定して
\((.+),(.+)\)
\((.+),(.+)\)
116デフォルトの名無しさん
2020/02/12(水) 10:51:06.48ID:NK/UnlDo >>115
それだと3)にもマッチするよ
それだと3)にもマッチするよ
117デフォルトの名無しさん
2020/02/12(水) 11:05:14.78ID:W9U9giTl >>114
a\)
a\)
118デフォルトの名無しさん
2020/02/12(水) 15:06:59.76ID:bUEb5r3d .を[^,]でどう?
119デフォルトの名無しさん
2020/02/12(水) 15:37:27.75ID:iIu6BAwU ID:bUEb5r3d 様
ありがとうございました。m(_ _)m
「\([^,]*,[^,]*?\)」で希望動作になりました
ありがとうございました。m(_ _)m
「\([^,]*,[^,]*?\)」で希望動作になりました
120デフォルトの名無しさん
2020/02/12(水) 18:44:57.81ID:bUEb5r3d どういたしまして。
ちなみに+じゃなくて*にしてるのは
(,)
にも一致させたいという事?
あと?は無くても動かん?
ちなみに+じゃなくて*にしてるのは
(,)
にも一致させたいという事?
あと?は無くても動かん?
121デフォルトの名無しさん
2020/02/12(水) 18:51:28.08ID:gdzQpnag [^,]*だと改行と閉じ括弧を含んでしまい
次の行まで選択してしまうのでは?
次の行まで選択してしまうのでは?
122デフォルトの名無しさん
2020/02/12(水) 19:37:56.96ID:bUEb5r3d 確かにこんなデータも想定するとアウトやね
((hoge,huga)piyo)
改行はオプション次第だね
((hoge,huga)piyo)
改行はオプション次第だね
123デフォルトの名無しさん
2020/02/18(火) 23:17:54.25ID:TkHg8SjE 指定した2つの文字XYの間がn文字以下(0を含む)にマッチする検索方法教えてください
マッチ例n=3
XY
XaY
XabcY
NG
XabcdY
マッチ例n=3
XY
XaY
XabcY
NG
XabcdY
124デフォルトの名無しさん
2020/02/18(火) 23:50:11.22ID:rgk/DkAY X.{0,3}Y
とかかな、試してないけど
とかかな、試してないけど
125デフォルトの名無しさん
2020/02/19(水) 00:18:10.76ID:Y6/DCNeg >>124
ありがとうございます
ありがとうございます
126デフォルトの名無しさん
2020/02/24(月) 14:31:40.12ID:iLDNrypx ●Regular Expressionの使用環境
実際に使う環境は不明ですが、まずはサクラエディタで試そうと思います。
●検索か置換か?
検索。マッチ部分を抽出できる必要はなく、含むかだけわかれば良いです。
●説明
文章(サクラは複数行NGとのことなので、今は1行)の中に「市」という文字が入っているかを判定したいです。
しかし、「横浜市」のような地名が入っているかを判定したいので、「巨大都市」「姉妹都市」のような特定のワードは排除したいです。
>>103の前後が逆のパターンになると思うのですが、単純に「^(?!.*(?!(?!巨大都|姉妹都)市)).*」とすると何もマッチしなくなってしまいます。
(そもそも「^(?!.*(?!ット(?!ボール))).*」の時点で「バスケット」にマッチしません)
●対象データ・希望する結果
ここは巨大都市だ
(マッチなし)
ここは横浜市だ
^
ここは巨大都市の横浜市だ
^
実際に使う環境は不明ですが、まずはサクラエディタで試そうと思います。
●検索か置換か?
検索。マッチ部分を抽出できる必要はなく、含むかだけわかれば良いです。
●説明
文章(サクラは複数行NGとのことなので、今は1行)の中に「市」という文字が入っているかを判定したいです。
しかし、「横浜市」のような地名が入っているかを判定したいので、「巨大都市」「姉妹都市」のような特定のワードは排除したいです。
>>103の前後が逆のパターンになると思うのですが、単純に「^(?!.*(?!(?!巨大都|姉妹都)市)).*」とすると何もマッチしなくなってしまいます。
(そもそも「^(?!.*(?!ット(?!ボール))).*」の時点で「バスケット」にマッチしません)
●対象データ・希望する結果
ここは巨大都市だ
(マッチなし)
ここは横浜市だ
^
ここは巨大都市の横浜市だ
^
127デフォルトの名無しさん
2020/02/24(月) 14:48:12.43ID:iQYTd9Fe129デフォルトの名無しさん
2020/03/21(土) 15:01:32.98ID:Ycs9n4/m どなたか教えてください。0が含まれる行のみ/以降を削除したいです。
(処理前)
2/3004
67//1
503/11/4
4/6/978
(処理後)
2
67//1
503
4/6/978
実際の文字列は数字とは限りません。可能かわかりませんがどうぞお願いします。
(処理前)
2/3004
67//1
503/11/4
4/6/978
(処理後)
2
67//1
503
4/6/978
実際の文字列は数字とは限りません。可能かわかりませんがどうぞお願いします。
130デフォルトの名無しさん
2020/03/21(土) 16:32:31.37ID:S0XSDbOV >>129
使用環境も書きましょう。
プログラミング言語かテキストエディタかでも大分違ってきますし。
スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境
Java1.5
●検索か置換か?
検索
●説明
各行の1番目のAまでを検索したい
●対象データ
ABCA
BCAA
CABA
●希望する結果
ABCA
^
BCAA
^^^
CABA
^^
※ ^ はアンダーラインだそうな ^^;
使用環境も書きましょう。
プログラミング言語かテキストエディタかでも大分違ってきますし。
スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境
Java1.5
●検索か置換か?
検索
●説明
各行の1番目のAまでを検索したい
●対象データ
ABCA
BCAA
CABA
●希望する結果
ABCA
^
BCAA
^^^
CABA
^^
※ ^ はアンダーラインだそうな ^^;
131デフォルトの名無しさん
2020/03/21(土) 16:58:05.15ID:iWBNd/W/ ^(?=.*0)([^/]*).*$
\1
\1
132デフォルトの名無しさん
2020/03/21(土) 18:17:29.30ID:Ycs9n4/m133デフォルトの名無しさん
2020/03/22(日) 11:16:42.62ID:nQo0XPUd ●Regular Expressionの使用環境
VisualWorks 7.7NC Regex11パーセル
●検索か置換か?
検索
●説明
jpgファイルの連番部分を取り出したい
なお正規表現にいくつか制約があります
先読みと後読みはできません (?= (?! (?<= (?<! などが未実装
最小一致も実装されていません
グループやキャプチャは可能です
'.*:^isDigit:(:isDigit:+)¥.(:isAlphabetic:+)$' asRegex. などとやっていましたが
これだと3333.jpgなどのパターンに対応できないので
'.*:^isDigit:?(:isDigit:+)¥.(:isAlphabetic:+)$' asRegex.
とやるとそもそもマッチしません
正規表現だけでやるうまい方法が見出せませんでした
isDigitは ¥d
isAlphabeticは [a-z] と読み替えできます
●対象データ
0000_1111_2222_3333.jpg
_0000_1111_2222_3333.jpg
3333.jpg
●希望する結果
3333
3333
3333
VisualWorks 7.7NC Regex11パーセル
●検索か置換か?
検索
●説明
jpgファイルの連番部分を取り出したい
なお正規表現にいくつか制約があります
先読みと後読みはできません (?= (?! (?<= (?<! などが未実装
最小一致も実装されていません
グループやキャプチャは可能です
'.*:^isDigit:(:isDigit:+)¥.(:isAlphabetic:+)$' asRegex. などとやっていましたが
これだと3333.jpgなどのパターンに対応できないので
'.*:^isDigit:?(:isDigit:+)¥.(:isAlphabetic:+)$' asRegex.
とやるとそもそもマッチしません
正規表現だけでやるうまい方法が見出せませんでした
isDigitは ¥d
isAlphabeticは [a-z] と読み替えできます
●対象データ
0000_1111_2222_3333.jpg
_0000_1111_2222_3333.jpg
3333.jpg
●希望する結果
3333
3333
3333
134デフォルトの名無しさん
2020/03/22(日) 11:49:39.63ID:feI8vnc9 0000などは連番扱いされないの?
135デフォルトの名無しさん
2020/03/22(日) 11:55:19.77ID:zGmYOqdI136デフォルトの名無しさん
2020/03/22(日) 12:16:09.69ID:loDgnmn0 ファイル名の最後の数字部分だけ取りたいなら (\d+).jpg とかじゃ駄目なん?
137デフォルトの名無しさん
2020/03/22(日) 12:33:09.14ID:zGmYOqdI >>133
そもそも :^isDigit: の前に .*は必要?
そもそも :^isDigit: の前に .*は必要?
138デフォルトの名無しさん
2020/03/22(日) 12:39:04.69ID:nQo0XPUd139デフォルトの名無しさん
2020/03/22(日) 12:41:01.29ID:nQo0XPUd >>136
試しましたがマッチしません
試しましたがマッチしません
140デフォルトの名無しさん
2020/03/22(日) 12:43:52.41ID:nQo0XPUd 書き忘れましたが
ファイル名だけでなくファイルパスを含む場合があります・・
ex.
/a/b/c/d/_0000_1111_2222_3333.jpg
3333.jpgのようなパターンさえなければ対応できているのですが
これが来た場合にうまくいきません
ファイル名だけでなくファイルパスを含む場合があります・・
ex.
/a/b/c/d/_0000_1111_2222_3333.jpg
3333.jpgのようなパターンさえなければ対応できているのですが
これが来た場合にうまくいきません
141デフォルトの名無しさん
2020/03/22(日) 13:22:29.93ID:ilL19jCu142デフォルトの名無しさん
2020/03/22(日) 13:27:20.03ID:nQo0XPUd >>141
エスケープ付けてテストしてあります
エスケープ付けてテストしてあります
143デフォルトの名無しさん
2020/03/22(日) 13:29:10.24ID:aG3rJm5+ >>140
(/a/b/c/d/_0000_1111_2222_)?3333.jpg
(/a/b/c/d/_0000_1111_2222_)?3333.jpg
144デフォルトの名無しさん
2020/03/22(日) 13:33:55.99ID:nQo0XPUd >>143
マッチします
マッチします
145デフォルトの名無しさん
2020/03/22(日) 13:53:17.55ID:7GTLasBi146デフォルトの名無しさん
2020/03/22(日) 14:25:12.02ID:HpFFHFhU JavaScript なら、これで一致するので、
キャプチャー部分だけを取り出す
var re = /(\d+)\.jpg/g;
キャプチャー部分だけを取り出す
var re = /(\d+)\.jpg/g;
147デフォルトの名無しさん
2020/03/22(日) 14:31:11.47ID:loDgnmn0 文字列の先頭からしかマッチできないんなら .*(\d+).jpg でいいんじゃね
ルールがローカルすぎてよくわからんが
ルールがローカルすぎてよくわからんが
148デフォルトの名無しさん
2020/03/22(日) 14:42:52.35ID:I5Su+SV6149デフォルトの名無しさん
2020/03/22(日) 14:50:15.15ID:loDgnmn0 (.*[^\d])?(\d+)\.jpg
150デフォルトの名無しさん
2020/03/22(日) 15:07:09.29ID:nQo0XPUd■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 反撃の中居正広、一世一代の大勝負へ元フジ女性アナとは「合意の上での性行為だった」と認識 [Ailuropoda melanoleuca★]
- 反撃の中居正広、一世一代の大勝負へ 元フジ女性アナとは「合意の上での性行為だった」と認識 ★2 [Ailuropoda melanoleuca★]
- 【なおド】大谷翔平が今季初の3戦連発16号ソロ! 本塁打ランキング単独トップ浮上 エンゼルス 6-2 ドジャース [鉄チーズ烏★]
- 【大阪・関西万博】吉村洋文知事「このままいけば完全撤去」重文指定・太陽の塔と並べて「大屋根リング」の価値主張 [ぐれ★]
- 【京都】カヌー大会で事故 強風により90艇が転覆か「数十人が溺れている」と110番通報 [あずささん★]
- 政府備蓄米の価格上乗せが拡大、卸売業者から小売り・外食へは60kgで7593円 [おっさん友の会★]
- 【バカの国】アメリカ国土安全保障省、移民が米国市民権かけて争うリアリティー番組を企画 [377482965]
- 台湾 最後の原発が運転停止へ 民進党政権「原発ゼロ」実現 [737440712]
- 【鶴巻】機動戦士ガンダムジークアクス、乃木坂要素を軸にしない考察は的外れという前代未聞の状況になる。 [608329945]
- ▶二番目に中の人と結婚したいホロメン
- 中国のGDP、世界2位確実に 日本は42年ぶりに転落 [271912485]
- 【悲報】今の日本に生まれる赤ちゃんの人生、ガチでハードモードすぎるwwwwwwwwwwwwwwwwwwwwwwww [839150984]