Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。
前スレ
Regular Expression(正規表現) Part13
http://echo.2ch.net/test/read.cgi/tech/1415149975/
次スレは>>980宜しく
天ぷら等2以降
探検
Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2017/03/15(水) 02:04:35.47ID:e01p03UP970968
2019/09/16(月) 15:36:25.96ID:oN5KVYJd >969
えー!!
えー!!
971デフォルトの名無しさん
2019/09/16(月) 15:52:31.08ID:YU5GpdCi972デフォルトの名無しさん
2019/09/16(月) 16:04:28.98ID:2suJbq8i matchじゃなくてsplitで
str.split(/(?<=^\d+) /)
か
array = str.split(" ");
array[0] + array.slice(1).join(" ")
とかじゃない?
str.split(/(?<=^\d+) /)
か
array = str.split(" ");
array[0] + array.slice(1).join(" ")
とかじゃない?
973デフォルトの名無しさん
2019/09/16(月) 16:06:13.84ID:2suJbq8i 間違えた
下の最後こうか
[array[0], array.slice(1).join(" ")]
下の最後こうか
[array[0], array.slice(1).join(" ")]
974デフォルトの名無しさん
2019/09/16(月) 16:24:50.88ID:VWND3fAL 素直に
"30 8 years old".match(/^(\d+) (.*)$/).slice(1)
じゃいかんの?
"30 8 years old".match(/^(\d+) (.*)$/).slice(1)
じゃいかんの?
975デフォルトの名無しさん
2019/09/16(月) 16:28:11.45ID:53ZoYsUm 正規表現逆引きcgiとかないの?
雑に日本語で書き込んだらAIが判断して正規表現を返してくれる
そんなの
雑に日本語で書き込んだらAIが判断して正規表現を返してくれる
そんなの
976デフォルトの名無しさん
2019/09/16(月) 17:07:19.10ID:YU5GpdCi977デフォルトの名無しさん
2019/09/16(月) 17:20:26.44ID:oN5KVYJd var ary = new Array( 2 )
var str = "30 8 year old humans"
var pos = str.indexOf( " " );
console.log( pos ) // 2
if( pos === -1 ) { // 見つからない
// 何かの処理
} else {
ary[ 0 ] = str.substring( 0, pos )
ary[ 1 ] = str.substring( pos + 1 )
}
console.log( ary ) // [ '30', '8 year old humans' ]
var str = "30 8 year old humans"
var pos = str.indexOf( " " );
console.log( pos ) // 2
if( pos === -1 ) { // 見つからない
// 何かの処理
} else {
ary[ 0 ] = str.substring( 0, pos )
ary[ 1 ] = str.substring( pos + 1 )
}
console.log( ary ) // [ '30', '8 year old humans' ]
978デフォルトの名無しさん
2019/09/16(月) 17:34:55.93ID:hRvCpxCQ979デフォルトの名無しさん
2019/09/16(月) 17:40:28.59ID:enU8we0d >>969
知らなかった
知らなかった
980デフォルトの名無しさん
2019/09/16(月) 18:09:34.33ID:enU8we0d const str = '30 8 year old humans'
(([first, ...rest]) => [first, rest.join(' ')])(str.split(' '))
//=> ["30", "8 year old humans"]
あ、正規表現がねぇw
(([first, ...rest]) => [first, rest.join(' ')])(str.split(' '))
//=> ["30", "8 year old humans"]
あ、正規表現がねぇw
981デフォルトの名無しさん
2019/09/16(月) 20:46:14.05ID:RGmahsTZ .split(/ (.*)/,2)
982デフォルトの名無しさん
2019/09/16(月) 22:28:40.71ID:enU8we0d 次スレ立てたんだけど、
Regular Expression(正規表現) Part15
https://mevius.5ch.net/test/read.cgi/tech/1568640311/
テンプレ貼ってたら>>3 がNGワードとやらで貼れません。
というわけであとよろしく。
Regular Expression(正規表現) Part15
https://mevius.5ch.net/test/read.cgi/tech/1568640311/
テンプレ貼ってたら>>3 がNGワードとやらで貼れません。
というわけであとよろしく。
983デフォルトの名無しさん
2019/09/17(火) 10:37:10.53ID:aFTX7+W5984977
2019/09/17(火) 12:02:24.99ID:aFTX7+W5 >>977
を修正した
const str = `101 dogs
30 8 year old humans`
const lines = str.split( "\n" ); // 配列
const results = lines.map( line => {
var ary = new Array( 2 )
const pos = line.indexOf( " " );
if( pos === -1 ) { // 見つからない
// 何かの処理
} else {
ary[ 0 ] = line.substring( 0, pos )
ary[ 1 ] = line.substring( pos + 1 )
}
return ary
} );
console.log( results ); // [ [ '101', 'dogs' ], [ '30', '8 year old humans' ] ]
を修正した
const str = `101 dogs
30 8 year old humans`
const lines = str.split( "\n" ); // 配列
const results = lines.map( line => {
var ary = new Array( 2 )
const pos = line.indexOf( " " );
if( pos === -1 ) { // 見つからない
// 何かの処理
} else {
ary[ 0 ] = line.substring( 0, pos )
ary[ 1 ] = line.substring( pos + 1 )
}
return ary
} );
console.log( results ); // [ [ '101', 'dogs' ], [ '30', '8 year old humans' ] ]
985デフォルトの名無しさん
2019/09/17(火) 16:12:25.16ID:sjKTVv5w amazonもダメみたいだね、本の紹介しようとしたら弾かれた
986983
2019/09/17(火) 17:07:52.35ID:aFTX7+W5 Amazon も、半角で書けないだろ
一番恐ろしいのは、はてなブログ!
書き込み禁止画面が出ずに、いきなり吸い込まれて、アクセス禁止にされる!
同様に、twitter の長いURL も、吸い込まれるものがあるらしい!
5ch で、しつこく宣伝する香具師をはめるために、いきなりのアク禁!
MANGO 板に書き込んで、何がNG ワードが、地道に判定していくしかない
一番恐ろしいのは、はてなブログ!
書き込み禁止画面が出ずに、いきなり吸い込まれて、アクセス禁止にされる!
同様に、twitter の長いURL も、吸い込まれるものがあるらしい!
5ch で、しつこく宣伝する香具師をはめるために、いきなりのアク禁!
MANGO 板に書き込んで、何がNG ワードが、地道に判定していくしかない
987デフォルトの名無しさん
2019/09/17(火) 17:46:48.25ID:+bGUkqkJ988デフォルトの名無しさん
2019/09/17(火) 17:53:38.97ID:Xou3E6HC はてブのURL、5ちゃんに書けないのか。気づいてなかったわ。
989デフォルトの名無しさん
2019/09/17(火) 17:56:58.73ID:+bGUkqkJ990デフォルトの名無しさん
2019/10/02(水) 17:34:34.60ID:dOlpIXop U . M . E
991デフォルトの名無しさん
2019/10/12(土) 20:41:17.72ID:VAjNOt6S 以下を正規表現で行うにはどうしたらよいでしょうか。
-----元データ------------------
<aaa bbb
ccc
ddd>
<eee>
ffff ggg
<hhh
iiii>
-----------------------------
-----欲しいデータ----------------
aaa bbb ccc ddd
eee
ffff ggg
hhh iiii
------------------------------
-----元データ------------------
<aaa bbb
ccc
ddd>
<eee>
ffff ggg
<hhh
iiii>
-----------------------------
-----欲しいデータ----------------
aaa bbb ccc ddd
eee
ffff ggg
hhh iiii
------------------------------
992デフォルトの名無しさん
2019/10/12(土) 20:46:20.53ID:osgjxuFW 改行無視のオプション+<>の間を取得して改行を空白に変更でどう?
993デフォルトの名無しさん
2019/10/12(土) 22:51:54.37ID:7TGqmTiW >>991
Ruby
$ cat input.txt | ruby -e 'puts ARGF.read.gsub(/<(.*?)>/m) { |m| $1.gsub("\n", "") }'
Node
$ cat input.txt | node -e 'process.stdout.write(fs.readFileSync(0).toString().replace(/<([\s\S]*?)>/mg, ($0,$1)=>$1.replace(/\n/g, "")))'
sed
$ echo $(cat input.txt) | sed -E 's/<([^>]*)>/\n\1\n/g' | sed -e '/^ *$/d' | sed -e 's/^ *//'
sedのは一旦改行削除して、<..>の前後に改行追加して、空行削除して、行頭の空白を削除してる
Ruby
$ cat input.txt | ruby -e 'puts ARGF.read.gsub(/<(.*?)>/m) { |m| $1.gsub("\n", "") }'
Node
$ cat input.txt | node -e 'process.stdout.write(fs.readFileSync(0).toString().replace(/<([\s\S]*?)>/mg, ($0,$1)=>$1.replace(/\n/g, "")))'
sed
$ echo $(cat input.txt) | sed -E 's/<([^>]*)>/\n\1\n/g' | sed -e '/^ *$/d' | sed -e 's/^ *//'
sedのは一旦改行削除して、<..>の前後に改行追加して、空行削除して、行頭の空白を削除してる
994デフォルトの名無しさん
2019/10/13(日) 01:09:33.88ID:Gu1oNPJo Ruby で、
text = <<"EOT"
<aaa bbb
ccc
ddd>
<eee>
ffff ggg
<hhh
iiii>
EOT
# m option は、multi-line。$1 は、キャプチャー部分。
# [^>]+ は、> 以外の文字が、1文字以上続く
puts text.gsub( /<([^>]+)>/m ) { |matched| $1.gsub( "\n", " " ) }
>>993
>$1.gsub("\n", "")
"" は、" "(半角空白)の間違いだろ
text = <<"EOT"
<aaa bbb
ccc
ddd>
<eee>
ffff ggg
<hhh
iiii>
EOT
# m option は、multi-line。$1 は、キャプチャー部分。
# [^>]+ は、> 以外の文字が、1文字以上続く
puts text.gsub( /<([^>]+)>/m ) { |matched| $1.gsub( "\n", " " ) }
>>993
>$1.gsub("\n", "")
"" は、" "(半角空白)の間違いだろ
995デフォルトの名無しさん
2019/10/13(日) 01:37:59.89ID:5y3mzviq996994
2019/10/13(日) 03:33:31.81ID:Gu1oNPJo 5ch からコピーすると、行末に半角空白が入るから、
漏れは、Ruby で削除してる
# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ary = str.each_line.map( &:strip ) # 連続する空白類を除去する
IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
漏れは、Ruby で削除してる
# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ary = str.each_line.map( &:strip ) # 連続する空白類を除去する
IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
997デフォルトの名無しさん
2019/10/13(日) 07:48:23.30ID:0NSyRtEU998デフォルトの名無しさん
2019/10/13(日) 22:01:19.92ID:5y3mzviq999デフォルトの名無しさん
2019/10/13(日) 22:05:59.26ID:w1EMiXuT VScodeの正規表現検索、置換はjavascriptだろうか?
1000デフォルトの名無しさん
2019/10/13(日) 22:42:48.39ID:5y3mzviq >>999
ripgrep
ripgrep
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 942日 20時間 38分 13秒
新しいスレッドを立ててください。
life time: 942日 20時間 38分 13秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で [お断り★]
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★3 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★7 [ぐれ★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★3 [お断り★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★3
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★4
- 【岸田悲報】🧑‍⚖「あれっ…そんなにズブズブなの…?」山上裁判で「安倍晋三と統一教会の関係」が次々と明らかに [559744496]
- 【高市早苗】習近平、本気で激おこ [115996789]
- 【朗報】高市経済ブレーン「経済対策の執行で来春には内需が大復活。3月頃利上げ可能に」 [237216734]
- 【高市有事】高市早苗が就任一ヶ月でやったこと一覧wwwwwwwwwwwwwww [603416639]
