[過去ログ] Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
963(1): 2019/09/13(金)13:25 ID:8XwQqyT8(1/2) AAS
Ruby で作った。
一旦、パターンで一致させてから、一致した行だけを変換した。
ただし、同じ行に、id="〜" が複数あると、バグる!
src = <<'EOT'
id="aAxy Xz"
あ
id=""
id="9"
id="9y"
EOT
省12
964: 963 2019/09/13(金)13:43 ID:8XwQqyT8(2/2) AAS
>>963
修正
>ただし、同じ行に、id="〜" が複数あると、バグる!
大丈夫だった。正常に動く
965(1): 2019/09/16(月)02:45 ID:dK4dr8mE(1) AAS
JSで
101 dogs
7 little goats
30 8 year old humans
↑をそれぞれ
["101", "dogs"]
["7", "little goats"]
["30", "8 year old humans"]
と切り分けるにはどんな正規表現を使えばよいでしょうか?
["7", " ", "little goats"]のような形でもかまいません
省4
966: 2019/09/16(月)02:59 ID:/xGIA7r1(1) AAS
正規表現を使えないなら文字列操作でやればいいだけ
正規表現を使いこなせてない人が使うとバグの温床になるからお勧めしない
967: 2019/09/16(月)07:18 ID:m2l8x1P1(1) AAS
>>965
.split(' ', 2)
968(1): 2019/09/16(月)12:07 ID:oN5KVYJd(1/3) AAS
Ruby では、
chomp で、末尾の改行を削除する。
split の2 は、分割の最大数
text = <<'TEXT'
101 dogs
30 8 year old humans
TEXT
p ary = text.lines( chomp: true ).map { |line| line.split( " ", 2 ) }
出力
[["101", "dogs"], ["30", "8 year old humans"]]
969(2): 2019/09/16(月)15:25 ID:YU5GpdCi(1/3) AAS
JSでは、
["30", "8 year old humans"]
ではなく
["30","8"]
となる
limitは、分割結果の制限であり、見つかった要素の数をそこまでで打ち切る
970(1): 968 2019/09/16(月)15:36 ID:oN5KVYJd(2/3) AAS
>969
えー!!
971: 2019/09/16(月)15:52 ID:YU5GpdCi(2/3) AAS
>>970
外部リンク:developer.mozilla.org
972: 2019/09/16(月)16:04 ID:2suJbq8i(1/2) AAS
matchじゃなくてsplitで
str.split(/(?<=^\d+) /)
か
array = str.split(" ");
array[0] + array.slice(1).join(" ")
とかじゃない?
973: 2019/09/16(月)16:06 ID:2suJbq8i(2/2) AAS
間違えた
下の最後こうか
[array[0], array.slice(1).join(" ")]
974(1): 2019/09/16(月)16:24 ID:VWND3fAL(1) AAS
素直に
"30 8 years old".match(/^(\d+) (.*)$/).slice(1)
じゃいかんの?
975: 2019/09/16(月)16:28 ID:53ZoYsUm(1) AAS
正規表現逆引きcgiとかないの?
雑に日本語で書き込んだらAIが判断して正規表現を返してくれる
そんなの
976(1): 2019/09/16(月)17:07 ID:YU5GpdCi(3/3) AAS
>>974
マッチしない場合でもエラーにならないよう保険かけとく方がよいのでは?
(str.match(/〜/)||[]).slice(1)
977(1): 2019/09/16(月)17:20 ID:oN5KVYJd(3/3) AAS
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 )
}
省1
978: 2019/09/16(月)17:34 ID:hRvCpxCQ(1) AAS
>>976
そう言うのは質問者に適宜やってもらえば良い
絶対マッチするという前提かもしれないし
979: 2019/09/16(月)17:40 ID:enU8we0d(1/3) AAS
>>969
知らなかった
980(2): 2019/09/16(月)18:09 ID:enU8we0d(2/3) AAS
const str = '30 8 year old humans'
(([first, ...rest]) => [first, rest.join(' ')])(str.split(' '))
//=> ["30", "8 year old humans"]
あ、正規表現がねぇw
981: 2019/09/16(月)20:46 ID:RGmahsTZ(1) AAS
.split(/ (.*)/,2)
982(1): 2019/09/16(月)22:28 ID:enU8we0d(3/3) AAS
次スレ立てたんだけど、
Regular Expression(正規表現) Part15
2chスレ:tech
テンプレ貼ってたら>>3 がNGワードとやらで貼れません。
というわけであとよろしく。
上下前次1-新書関写板覧索設栞歴
あと 20 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.034s