[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/30 17:43 / Filesize : 258 KB / Number-of Response : 1034
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Regular Expression(正規表現) Part13



1 名前:デフォルトの名無しさん mailto:sageteoff [2014/11/05(水) 10:12:55.39 ID:CXVoT6Mj.net]
Regular Expressionスレです。

質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。

前スレ
Regular Expression(正規表現) Part12
peace.2ch.net/test/read.cgi/tech/1387257592/


天ぷら等2以降

369 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 23:21:19.14 ID:KHffJxSC.net]
\(^o^)/

370 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 23:23:37.44 ID:cMy/WvKO.net]
>>362
ご愁傷様です

371 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 23:37:14.88 ID:UhJI1pbU.net]
俺はvi

372 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 18:05:00.21 ID:BED/WPPF.net]
vs2013最強だな

373 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 11:25:31.33 ID:DVsQoV68.net]
あるテキストファイルの中の文字列を置換したいのですが、
その置換前、置換後の文字列の対応表を別の設定ファイル
---設定ファイル.txt---
寿司   くいねー
うに   

374 名前:食べたい
河童巻き   好物
・・・
---------------------
みたいに作成しておいて、

 replace  目的ファイル.txt 設定ファイル.txt > 結果ファイル.txt

みたいな感じでやりたいのですが、そういうツールか何かありますか?
できればWindows、なければ linuxでもOKです。
よろしく。
[]
[ここ壊れてます]

375 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 11:30:28.23 ID:uFdJ1boh.net]
>>329
改行キープして先ずはコメントだけ消す。
もしくはプリプロセッサ通すか。

376 名前:デフォルトの名無しさん [2015/06/09(火) 15:07:38.63 ID:9FRXqzT5.net]
>>367
awk

377 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 16:15:21.85 ID:DVsQoV68.net]
>>369
出来れば、もすこし詳しくお願いします。



378 名前:デフォルトの名無しさん [2015/06/09(火) 16:23:53.22 ID:9FRXqzT5.net]
Aho
Waka
Kasu

379 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 16:48:22.66 ID:beQM3dhk.net]
www

380 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 21:08:22.70 ID:uFdJ1boh.net]
若?

381 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 21:13:30.98 ID:J0bC0FT3.net]
waka

382 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 16:22:42.94 ID:fWBwznRJ.net]
VS2013C++の人か、回答レス付いてるのにスルーしてるしなんなのこいつ

383 名前:デフォルトの名無しさん [2015/07/05(日) 13:37:02.04 ID:sKAHM/R7.net]
他のスレでも聞いたのですが余り見て貰ってないような気がするので、ここでも聞かせてください。


以前見た正規表現のパズルサイトを探しています

そのサイトは英語のサイトで、デザインはこんな感じです。

---------------------------------------
以下に当てはまる正規表現は何か(<-英語で書かれています)

___________<-ここに書き込む     0<-ポイント

 (当てはまる) (当てはまらない)
 AAA      FCD
 ABC      FGH
 ACD      FGK
---------------------------------------

短ければ短いほどポイントが加算されていくと言った、
こんな感じだったと思います。

よろしくお願いします

384 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 13:53:34.40 ID:tVdhCBhpS]
regex game - Google 検索
https://www.google.com/search?q=regex+game&ie=utf-8&oe=utf-8

https://regex.alf.nu/

一件目…

385 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 15:47:00.25 ID:XIvEwRaJ.net]
>>367
awk なら、getline で、辞書を1行ずつ読んで、
置換前・置換後の文字列を取得する

gsub で、すべてを置換していく

でも文字列処理なら、Rubyがベスト。
他には、Pythonとか


ただこの処理は、置換する順番によって、
結果が変わる

例えば、「あいう」→「かきく」の置換後、
「かき」が置換前文字列に該当し、置換されるかも

386 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 21:27:23.22 ID:8iLtGCDs.net]
>>376
これ?
regex.alf.nu/

あと、複数箇所に同じ質問を投稿するのは「マルチポスト」といって、嫌う人も多いのでやめたほうがよい

387 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 21:43:42.37 ID:70VDGlmK.net]
マルチポスト嫌う奴って何に怒っているのか不思議だよなあ。同じ質問を十箇所でする方が回答得られる確率が上がるだろ。
それの何が問題なのか、分からん。



388 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 21:56:30.58 ID:YfZOtl+L.net]
分からんのは童貞だからだ。割とマジで
非童貞非処女だとすれば相当ヤバい

389 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 22:01:39.03 ID:70VDGlmK.net]
>>381
世の中情報で溢れているのに
マルチポスト嫌ったところで
屁のツッパリにもならない。

390 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 23:50:33.88 ID:7d6Itz6/.net]
あああのサイトか、見たことある
でもあんまり正規表現の学習にはならないような気がする

正規表現を覚えたいなら作って試してを繰り返さないとね

391 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 01:41:38.43 ID:lhd6PF02.net]
文句は2ちゃんをクロスポストに対応させてから言え

392 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 03:32:50.53 ID:gmiPbzXR.net]
peace.2ch.net/test/read.cgi/tech/1415149975/385
みたいに、
質問する者が一番最初に書いたスレのレス番付きURLを書けば、回答者は一番最初に書かれたスレへ移動して解答できる訳だが
まぁ今回のクロスを見る限り、そういうのは起こりえないな

クロスポストが嫌われる理由は、回答者が同じような事を各々のスレで行う二度手間と質問に対する解答が分散する事での情報の共有が起こらない事
過疎ってるスレによっては、質問されてからクロスされて別スレで解答が付いているにもかかわらず同じ解答が何ヶ月も後になって付くとかね

393 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 08:26:10.91 ID:LAMrWff0.net]
質問はいいだろう
答えをコピーして自分の手柄にする奴のほうが絶対的に多い

394 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 09:20:56.75 ID:PmLO0F5+.net]
クロスポストって嫌われてたのか

395 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 09:28:03.86 ID:L6unJ2A5.net]
ツイッターの拡散とかいう文化のせいでそういうの気にしないやつ増えたかもな
自分の行動の影響ってのを考えようとしない子供が多い

396 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 12:23:11.65 ID:9pvabuWR.net]
お前の行動にどんだけ影響力あんねんw

397 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 13:05:36.16 ID:L6unJ2A5.net]
>>389
それが逃げだと言っている
でもだってあいつがはもうやめろ



398 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 13:22:29.97 ID:jRBtOUWL.net]
(´・ω・)カワイソス

399 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 18:51:03.65 ID:mHy7mQ0q.net]
>>390
なに突然怒ってんのw面白い馬鹿だなお前ww

400 名前:369 [2015/07/06(月) 19:56:47.96 ID:EhiPaBaL.net]
>>379
これです!!!!!!!!!
ありがとうございます!!!
本当にありがとうございます!!

401 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 20:30:44.10 ID:sYr/dgVc.net]
技術評論社の「正規表現技術入門」
いま少しずつ読んでるけどなかなかいいね
オライリーの「詳説正規表現」は通勤電車で読むにはでかすぎたから
しかしいっぺんにたくさん読もうとすると頭が拒否反応を起こすので遅々として進まない

402 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 22:02:35.59 ID:eLFiYoiP.net]
>>394
遅延学習法じゃないと俺は覚えられないわ。
すげーな。

403 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 09:55:54.12 ID:hzu9oSkn.net]
ちょっと気になったんですが
[abc]と(?:a|b|c)って同じ?

404 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 15:19:23.56 ID:z/gFWW9M.net]
処理速度は明らかに違うね。やってること違うんだから

405 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 15:29:45.92 ID:/ztBzBD5.net]
(?:a|b|c) ←横たわった赤ちゃんが「てへ」って笑っているように見える。

406 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 16:53:22.08 ID:/TIw0VBH.net]
_(:3」∠)_

こういうの意味不明だったけど
90度倒すんだってことを最近学んだ

407 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 03:21:59.41 ID:E8Ycm1mp.net]
同じように見えて動作は異なる
同じ結果になることが多いけどね

後者は分岐で枝分かれするが前者はしない
枝分かれがあると他の枝に到達する前に処理が完了することがあり
それによって結果が異なるケースが出てくる

具体的には・・例を考えるのがめんどくさいので省略



408 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 05:26:15.77 ID:+YvowemZ.net]
(:・p

わんわん

409 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 06:12:13.81 ID:coKbQ2xf.net]
>>400
速度以外で副作用あるなら例示してくれないと

410 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 13:45:40.34 ID:rgM8ybmA.net]
一部の正規表現エンジンにある デフォルトungreedy やバックトラック無用オプションを使うと

411 名前:出来そうだが、

例出すのめんどくせいな。
[]
[ここ壊れてます]

412 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 21:46:45.01 ID:haTSgOk9.net]
(a|b|c)?

あとはもう分かるね?

413 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 23:07:11.17 ID:D0NzobbPS]
分らんなぁ

414 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 08:52:15.33 ID:+eUx92Zt.net]
分かんない

415 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 19:36:44.94 ID:ItgeJjtc.net]
●Regular Expressionの使用環境
Perl?

●検索か置換か?
検索

●説明
全角文字のあとにスペースをおかずURLが書いてあるものをチェックしたい

●対象データ
あいうえおhttp
あいうえお http
あいうえお http

●希望する結果
○あいうえおhttp
×あいうえお http
×あいうえお http

416 名前:デフォルトの名無しさん mailto:sage [2015/07/27(月) 01:46:46.85 ID:oJMQ9Tqm.net]
夏だねぇ。

417 名前:デフォルトの名無しさん mailto:sage [2015/07/27(月) 01:59:27.68 ID:lCJIzle6.net]
>>407
/[^\s ]http/i



418 名前:デフォルトの名無しさん [2015/08/15(土) 11:43:29.85 ID:R9fu6Ifz.net]
質問です。
Objective-Cで
(1)文字列中の[0-9],「*」,「Z」以外の文字を半角スペースに置換えるには、
 どう記述すれば良いのでしょうか?
(2)同じ文字列中の別の文字(例えば「"」)も別の文字列(例えば「OK」)に置換えたい場合は、
 2回に分けて行わなければいけないのでしょうか?

よろしくお願い致します。

419 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 09:52:41.61 ID:zFueqOk6.net]
●Regular Expressionの使用環境
Mery(2.3.0.5095)というテキストエディタ

●検索か置換か?
検索

●説明
=の右側(後)のみ一致させたい

●対象データ
usb:0.port = "0"
usb:0.parent = "-1"
Button0=FileNewAction
Button1=FileOpenAction

●希望する結果
"0"
"-1"
FileNewAction
FileOpenAction

よろしくお願いします

420 名前:402 mailto:sage [2015/08/18(火) 09:54:23.67 ID:zFueqOk6.net]
●対象データ
usb:0.port_=_"0"
usb:0.parent_=_"-1"
Button0=FileNewAction
Button1=FileOpenAction

●希望する結果
_"0"
_"-1"
FileNewAction
FileOpenAction

半角スペースが消えてしまったので_(アンダースコア)に置き換えて投稿します

421 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 10:09:54.52 ID:E/WkoMWm.net]
/[^=]*?=(.*)$/

422 名前:402 mailto:sage [2015/08/18(火) 10:20:45.79 ID:zFueqOk6.net]
>>413
ありがとうございます
それだと全部に該当してしまい駄目でした

423 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 10:51:10.47 ID:3C1G6Y0R.net]
/(?<=\=).*$/

424 名前:402 mailto:sage [2015/08/18(火) 10:55:39.07 ID:zFueqOk6.net]
>>415
ありがとうございます
無事できました
どうもありがとうございました

425 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 07:30:33.92 ID:nmY/Lo3r.net]
JavaScriptで変数宣言の行

var a;
  var bb;
var ccc = 1;
/* comment */  var abc = 1;

などに対して
この変数名 a, bb, ccc, abc などを取り出したいのですが、

(?:.*)var ([^; ]*)(;| =).*"

で良いでしょうか?
以下の前提で。
varと変数の間には半角空白一個とします。
=の前後には半角空白一個とします。
行末には必ず;があるとします。

/* var */ var var1 = 'var';

みたいなややこしいのが有った場合には、上の表現では対処出来ないように思います。

もっとスマートな記述ありますか?

426 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 07:35:38.53 ID:nmY/Lo3r.net]
補足 一行に複数の宣言がある場合も想定しない。

var a,b;
var a;var b;
などは想定しない。

427 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 07:56:53.39 ID:2BnPkC6V.net]
コメントを考慮するなら正規表現一発では無理
s = 'var a = 1;';
// var a = 1;
/* var a = 1; */
/* // */ var a = 1;



428 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 08:03:06.49 ID:nmY/Lo3r.net]
コメントが有る場合は、
var の前に一個だけあるという前提でお願いします。

429 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 08:09:24.25 ID:hnj5IXaX.net]
var a = '//ここは' /* + */ + 'コメントではない';

430 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 08:21:58.67 ID:nmY/Lo3r.net]
>>421
演算も無いという前提でお願いします。
 var 変数;
  var 変数 = 初期値;
 /*コメント*/ var 変数;
  /*コメント*/ var 変数 = 初期値;
のどれかのパターン限定で。

431 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 08:26:11.19 ID:2BnPkC6V.net]
こういうのも無し?

/*
//
var a =1;
*/

432 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 08:34:16.58 ID:nmY/Lo3r.net]
>>423
そういうのは無し

433 名前:ナお願いします。 []
[ここ壊れてます]

434 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 08:43:57.59 ID:nmY/Lo3r.net]
忘れていました。
処理系はc++のstd::regexかboost::regexで。

435 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 09:18:39.14 ID:8jY/tdOy.net]
test

436 名前:デフォルトの名無しさん [2015/08/19(水) 09:36:41.17 ID:NotHJ7I4.net]
●Regular Expressionの使用環境
Python 3.4

●検索か置換か?
検索

●説明
Aから始まってCで終わる(Aから最後のCの中には別のCを含まない)配列が欲しいです

●対象データ
"ABABBCBBBABBBBC"

●希望する結果
"ABABBC"
"ABBC"
"ABBBBC"



よろしくお願いいたします

437 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 15:03:59.14 ID:ABRvhkR2.net]
"ABBC" をマッチさせたいならPythonのコードで検索開始位置を指定しなければいけないよ
それとAやCが1文字なのか文字列なのかで書き方がまったく異なるんだけどどっちかな



438 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 16:05:10.36 ID:1N+DcVii4]
regexというモジュールを使うと楽だよ
>>> import regex as re
>>> re.findall(r'A[^C]*C', "ABABBCBBBABBBBC", overlapped=True)
['ABABBC', 'ABBC', 'ABBBBC']

439 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 21:54:24.07 ID:NotHJ7I4.net]
文字列です

440 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 02:06:15.79 ID:uDC2QM+h.net]
A(?:(?!C).)*C

A、Cは文字列。検索するときのオプションは re.DOTALL

普通に検索すると "ABBC" がマッチしないのでマッチするようにコーディングを工夫しないといけない

前回マッチした文字列の先頭の位置 + 1 = 次回マッチを開始する位置

これを使って1マッチごとに検索開始位置を指定し直し、これを繰り返す
マッチするものが見つからなければ検索の繰り返しを終了するようにコーディングする
使うのは re.match でなく re.search。マッチした文字列の先頭は match.start()

441 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 02:13:38.15 ID:b7jGp5V2.net]
ありがとうございます!

442 名前:デフォルトの名無しさん [2015/08/20(木) 11:38:48.95 ID:vSASgIXr.net]
正規表現って、狭義では
s/unko/chinko/m
でいう hoge の部分のことですよね

sの部分と mの部分は それぞれなんと呼べばいいのですか?

443 名前:デフォルトの名無しさん [2015/08/20(木) 11:47:22.72 ID:pV6cw7bo.net]
Where is hoge?

444 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 15:16:54.70 ID:Ku+dT2bO.net]
Oh i dont found hage.

445 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 15:38:44.92 ID:lQ5EcHLA.net]
>>433
お前が正規表現だったのか

446 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 16:31:01.44 ID:/ofAbfuE.net]
Palrez vous hoge?

447 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 00:40:07.59 ID:sdFrMS9Z.net]
anko が足りないぞ



448 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 00:57:17.96 ID:l5C6fxn/.net]
sayasayaもな

449 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 01:02:18.54 ID:RiErs0YC.net]
>>433
先頭のsの部分はoperationと呼ばれる。
末尾のmの部分はoptionだったかな。

perlでの話だけど。

450 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 04:29:04.11 ID:Y3ixC287.net]
test

451 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 04:41:36.20 ID:dLGlSdT1.net]
あーなるほど

452 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 08:27:46.60 ID:C9kOInGB.net]
>>440
mなんて使えたっけ?pしか覚えてねえ。

453 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 08:29:47.18 ID:C9kOInGB.net]
あ、sedの話だった。perlは分からん。

454 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 08:35:06.38 ID:JFe3Ml2I.net]
>>443
multi lineのm
文字列内の改行を行末や行頭として扱うオプション。
java scriptでも使えた気がするよん。

455 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 12:24:19.85 ID:fG7y6P2l.net]
Java Scriptでは、オプションとは言わずフラグと言ってる
gmiとy(Firefox 3で追加)の4つがある

456 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 16:26:06.32 ID:WBRo7qVL.net]
>>440
ありがとう
助かった

457 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 08:45:31.63 ID:lL9KDRTX.net]
文字列の一行目にだけある正規表現を適用したい場合
どういう風に書けばいいでしょうか?



458 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 08:50:52.82 ID:dXN4Hx3i.net]
\A を使いなさい

459 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 09:59:2 ]
[ここ壊れてます]

460 名前:1.94 ID:7arkYUNT.net mailto: 鬼車のサイトが見れなくなってる []
[ここ壊れてます]

461 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 14:27:00.34 ID:hIocF1du.net]
複数の単語が半角スペース、全角スペース、タブなど(一個あるいは複数個)で連結されているとして、それを半角スペース一個だけで連結したいんです。

462 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 14:38:16.99 ID:H2J+jlBE.net]
[  \t]+

463 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 15:06:08.02 ID:OjSr213v.net]
s/\s+/\s/

464 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 00:02:44.61 ID:Xqs3nieT.net]
>>453
処理系何?

465 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 00:49:32.43 ID:R93LeTtd.net]
質問すらまともに出来ない奴が正規表現なんて無理

466 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 21:59:01.69 ID:qbjnfhqx.net]
今まで任意の1文字は"."と覚えていたのですが
シングルラインでは"(?s)"
マルチラインでは"."
があると初めて知りました
シングルラインの記述はマルチラインと全く違いますが、シングルラインは1から覚えないと駄目なものなのでしょうか?

467 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 22:29:36.80 ID:K9e6sJjq.net]
単にメタ文字の意味がちょっと変わるというだけ
マルチラインだからといって一行ごとに区切って処理されてるわけじゃなく、単にメタ文字の意味が変わるだけ



468 名前:デフォルトの名無しさん [2015/09/10(木) 22:39:25.93 ID:CgmggGA3.net]
これすごいと思った

var list = (function() {/*
ここに
任意の
文字列
*/}).toString().match(/\/\*([^]*)\*\//)[1];

469 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 23:22:04.39 ID:lE8lGtnC.net]
>>457
レスありがとうございます
意味が違う(マルチラインの意味を流用できない)ってことはやはりその意味を1から覚え直さないと駄目ってことなんですよね?
マルチラインだけの意味を理解しただけで喜んでいたことが恥ずかしい

470 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 00:23:03.67 ID:XlHAG1ZO.net]
>>458
良い事教えてもらった

471 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 00:23:58.68 ID:suCkJgnJ.net]
別にマルチラインだけ覚えててシングルラインの動作を知らなくても困ることはないよ
余裕があったらシングルラインの動作も調べればいいし、必要無ければそのままでもいい

というかググればどういう違いがあるのか一目瞭然だから気になるならググろう
別に知らなくても困らないからマルチライン一本に絞ってやっていってもいいと思うけどね

472 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 01:29:00.23 ID:Dh6jgTtm.net]
>>461
ググって違いがあったことだけで具体的な違いはまだでした
正規表現はとても興味深いのでシングルラインは具体的にどう違うのか調べてみたいと思います
ありがとうございました

473 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 07:00:21.81 ID:GHVwR1ig.net]
>>458
どうなるん?

474 名前:デフォルトの名無しさん [2015/09/11(金) 17:05:24.41 ID:z9laoE0x.net]
質問です(Perl)。
「yyyy年mm月dd日」形式の文字列を検索して、
yyyyとmmとddを別々の文字列として受け取りたい場合は、
どう書けば良いのでしょうか?

475 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 17:53:37.67 ID:jxONgP+h.net]
>>463
間に書かれた(複数行の)文字列が変数listに代入される
が、
[^]*
の意味が判らない???
否定文字クラスが空?

WSHやIEだと(jscript)ダメ
鬼車やrubyでもダメ
[\s\S]*って書いたほうが汎用性があるんじゃないか?

476 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 18:27:00.52 ID:GHVwR1ig.net]
>>465
よくわからん。
間の文字列はコメントじゃあない?

477 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 18:38:32.93 ID:9VDeBDLt.net]
>>465
[^*]*の転記ミス?



478 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 19:53:46.65 ID:jxONgP+h.net]
>>466
一つWSH実行で例をあげてみる
var func = (function() {/* xxx */});
WSCript.Echo(func);

これは無名関数(関数リテラル)で定義された関数funcを表示してみたわけだが
function() {/* xxx */}
と表示される
これで判るんじゃない?

479 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 19:57:29.77 ID:jxONgP+h.net]
書き損じた
var func = function() {/* xxx */};
WScript.Echo(func);

480 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 22:05:30.40 ID:GHVwR1ig.net]
>>469
わからん。どう見てもコメントじゃあん。

481 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 22:13:39.85 ID:eqePKJqG.net]
じゃあん

482 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 22:17:20.35 ID:WBH/LaOP.net]
(・・?jランキング

483 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 22:19:25.84 ID:WBH/LaOP.net]
( ^ω^)

484 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 23:17:23.15 ID:jxONgP+h.net]
>>470
var func;
func = function() {/* xxx */};
WScript.Echo(func); //---(1)
func(); //---(A)
func = func.toString();
WScript.Echo(func); //---(2)
func(); //---(B)

(1)と(2)で表示されるものは同じだが、(A)は正常で(B)ではエラーとなる
変数funcに何が入っているのか考えれば判るだろう

485 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 01:41:58.72 ID:SpNYzqMd.net]
>>464
/(¥d+)年(¥d+)月(¥d+)日/
でどうかな?
$1、$2、$3で

486 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 06:10:17.28 ID:1mS4NSAq.net]
全然わからん。

487 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 10:19:21.58 ID:GXmnKqHL.net]
分からんものを使ってもデメリットしかない



488 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 11:35:33.84 ID:EtegBYPR.net]
>>476
カッコで格納してドルで呼び出し

489 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 14:49:20.82 ID:1mS4NSAq.net]
448は結局どいう時にに役立つんだ?

490 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 22:39:31.81 ID:P7CwcYHV.net]
>>479
データを手間なく埋め込みたいとき

普通のテキスト代入だと、
var list = 'ここに\n'
+ '任意の\n'
+ '文字列\n';
とか
var list = [
'ここに',
'任意の',
'文字列',
].join('\n');
って書かなきゃいけないじゃん
さらに文字列中に引用符"'や\を入れるときは、'"'+"'"と分けるか、'\''とかエスケープしなきゃならないし

まあhtmlなら<script>タグに入れる手もある
<script id="data" type="text/plain">
ここに
任意の
文字列
</script>
<script>
var list = document.getElementById('data').text;
alert(list);
</script>

491 名前:448 [2015/09/16(水) 04:04:28.82 ID:dSgInI6n.net]
自分が調べたきっかけはこういうサイトにデータを入力するのをスクリプトでやるためです。

※広告注意※
ttp://hibin0.web.fc2.com/grbr_atk_calc/atk_calc.html

入力するデータはスクリプトで取得してますが、
ブックマークに登録した JavaScript で簡易的にやってるので
データのセットまではできないんですね。
それで、ぽとぺたの手間が少なくて済むこの方法が便利かなと。

どのみちデータとスクリプトをセットで出力して丸ごとコマンド実行するつもりですが
データの部分に手を付けなくて済むので楽かなと。
その場合、特に、文字列記号の入れ子を避けられるのがメリットです。

ついでに書くと、 >>458 の書き方だと空行が入るので
データとして使う場合は trim() か空行チェックが必要です。

492 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 09:34:22.52 ID:d+PGYxxz.net]
^と¥Aの違いを教えてください。
どちらも先頭にマッチするんですよね?
違いが分かりません。

493 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 10:57:00.59 ID:3CkagkiO.net]
>>3

494 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 11:19:06.35 ID:d+PGYxxz.net]
>>483
ググッテもさっぱり分かりませんでした。

495 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 13:45:02.23 ID:d+PGYxxz.net]
0-9の数字では無い
と言う条件は
[^0123456789]
でいいですか?
[^0-9]
と書けませんか?

496 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 14:15:51.79 ID:3CkagkiO.net]
>>484
>>3の一番上のリンク先で \A で検索

>>485
\D または [^0-9]

注意すべきなのはこれらは1文字にマッチするということ
数字でない文字が1文字存在する必要がある

497 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 14:39:05.73 ID:AOGvYO3E.net]
実用的なパターンが載っているサイトってありますか?



498 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 16:35:52.59 ID:6tXr0RuA.net]
めんどくさいタイプだな、めんどくさいんで適当にググるか本でも買って読んでくれ、じゃあの

499 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 16:58:01.05 ID:gMKo9Xtr.net]
>>487
フクロウ本でも買えば?

500 名前:デフォルトの名無しさん [2015/09/17(木) 21:41:49.03 ID:9KwBG3P+p]
>>481
> >>458 の書き方だと空行が入るので

しまった。
名前欄は 2ch.net の番号で書いたのに
アンカーは 2ch.sc の番号で書いてしまった。
アク禁食らったから 2ch.net に書けない。

501 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 22:33:32.80 ID:ThAKGp2R.net]
正規表現ってどうして言語ごとに違いが有るの?
厳密な規格みたいなのは無いん?

502 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 00:42:49.70 ID:4VjvFtyx.net]
その土地ならではのバックスラッシュ

503 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 01:16:12.96 ID:jVOZa/zV.net]
regex-testdrive.com/ja/
"aaa/bbb/ccc"から"aaa/"をマッチさせるつもりで".+?/"と書いたんですが
"aaa/bbb/"がマッチします。何故ですか?

504 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 06:55:30.87 ID:V+MALMQT.net]
"bbb/"というグループも".+?/"にマッチするのではなかろうか?

505 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 10:53:10.43 ID:jFHyX+Eq.net]
もう来ないで欲しい

506 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 14:03:35.01 ID:qCXEI70o.net]
^.+?/
だと"aaa/"がマッチするよ

507 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 14:31:54.26 ID:qCXEI70o.net]
>>493
結局、勘違いじゃないですかね?
/gフラグ付きで、"aaa/"と"bbb/"の両方にマッチしてるんでない?



508 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 14:40:22.56 ID:ISETQD0O.net]
正規表現覚えるなら言語は何がお勧め?
c#でやれば他の言語でも応用出来ますか?

509 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 14:44:12.71 ID:qCXEI70o.net]
>>498
色々あるけど自分がよく使う環境が一番いいよ
実装が多いのを使ってみたかったら、Perlとか鬼車とかでいいんじゃない?

510 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 15:22:53.14 ID:jVOZa/zV.net]
>>494 >>496-497
ああ、最後まで反復されてるってことですか
無欲の解釈に自信がなかったので気付きませんでした
ありがとうございました

511 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 15:30:23.88 ID:jFHyX+Eq.net]
バカすぎ

512 名前:デフォルトの名無しさん [2015/10/06(火) 15:24:45.73 ID:18FNk5ew.net]
sed -i -e “s|#LoadModule php5_module libexec\/apache2\/libphp5.so|LoadModule php5_module libexec\/apache2\/libphp5.so|“ /etc/apache2/httpd.conf
どこで質問すればいいのか分からなかったのでここでします
上の文章、どう変えたら動きますか?
ちなみにmacです

513 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 19:18:07.89 ID:7VCMeLNK.net]
引用符が全角なのはまずいし、sed で -i オプション使うなら、-i.bak ってした方がいい。んで
sed -ne "/LoadModule php5_module/p"
でマッチするかどうかから始めたらどだろか。

やりたいことはコメントマーク外すだけみたいだから、エディタで編集した方が早そうだけど。

514 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 22:47:47.44 ID:KbfkRHMw.net]
出来るだけ精度良く住所にマッチする正規表現を教えて下さい。ネットの例はどれも性能不足でした

515 名前:デフォルトの名無しさん [2015/10/13(火) 09:00:48.01 ID:4ZQyScAP.net]
全市町村入力してマッチさせたらいいよ

516 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 13:58:08.73 ID:P4Y/UxqF.net]
>>505
物凄く長いパターンになるんじゃないか?
何文字くらいか見当もつかない

517 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 14:17:22.83 ID:GR3E4svI.net]
(((( ;゚Д゚))))



518 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 19:13:40.45 ID:P4Y/UxqF.net]


519 名前:[a-z]のtだけは除外したい場合
[a-su-z]で出来ると思うのですが、
[^ta-z]みたいな書き方は出来ませんか?
[]
[ここ壊れてます]

520 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 19:21:04.50 ID:uqM+CGI7.net]
>>508
(?!t)[a-z]

521 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 19:44:38.71 ID:P4Y/UxqF.net]
>>509
ありがとうございました。

522 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 12:39:42.52 ID:lZc14wWH.net]
"単語A", "単語B", "単語C"
のどれも含まないパターンって
どう書くのでしょうか?

523 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 13:17:34.78 ID:vyPdS64J.net]
横d

524 名前:デフォルトの名無しさん [2015/10/17(土) 14:40:06.33 ID:8crV4oii.net]
>>511
どれかが含まれるパターンの否定

525 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 14:46:12.98 ID:f+gWclGN.net]
ド・モルガンの法則ってやつだね

526 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 14:56:57.56 ID:5seGsXGR.net]
素直に教えてやれよ
^(?!.*単語A)(?!.*単語B)(?!.*単語C)

527 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 15:15:01.19 ID:K9XF/GDc.net]
thx



528 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 15:18:00.34 ID:K9XF/GDc.net]


529 名前:デフォルトの名無しさん [2015/10/17(土) 16:34:38.08 ID:bgoAiOcg.net]
>>511>>2のテンプレ使うべき
正規表現の否定の使えるプラグラミング言語なのか
単なるテキストエディタなのかでも
回答は違ってくるわけで。。。

530 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 17:24:26.45 ID:5seGsXGR.net]
>>518
まあそうだが、何もそんなに杓子定規に対応しなくてもいいと思う
特別な環境なら自分から質問時に注釈をつけてるはずで
何もなければ一般的な回答でいい
否定先読みは一般的と言える(戻り読みは特殊)し、もしダメだったらまた何か言ってくるだろ

531 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 19:43:19.06 ID:lZc14wWH.net]
>>515
上手く行きました。
ありがとうございました。

532 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 18:11:22.29 ID:sPJe7rRi.net]
合致するもの以外を取得する、
否定オプションを使えば?

grep -v (invert)

533 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 06:17:27.55 ID:H3y+KU/u.net]
トンデモ質問者に不満がある奴は来ないほうがいいぞ、ストレス溜め込むだけだ
こんなとこで油売ってる暇があったら仕事しろ

534 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 07:51:48.47 ID:zc5Cc/IW.net]
回答者の一部がトンデモなだけで
質問者がトンデたとは思えない

535 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 12:38:36.36 ID:n0r635Bx.net]
●Regular Expressionの使用環境
EmEditor Free 15.2.2

●検索か置換か?
置換

●説明
n個目の半角スペースから指定文字までを消したい

●対象データ
ABC DES GER AAG AEV文字列AFGABBMNYEUDSAE

●希望する結果
2個目の半角スペースから文字列までを消す場合は
ABC DES AFGABBMNYEUDSAE

536 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 14:32:37.10 ID:wNyxqlEs.net]
#とにかく半角空白の数を基準にする(対象の半角空白*以降*からだよ!)
^(([^ ]* ){2}).*文字列(.*)   置換後 $1$3
#字下げは無視して、要素間の連続した空白を基準にする
^( *([^ ]+ +){2}).*文字列(.*)   置換後 $1$3

537 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 14:37:33.55 ID:wNyxqlEs.net]
ごめんemエディタの置換後の書式は \1\3 だね。すまぬー



538 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 16:59:09.63 ID:n0r635Bx.net]
>>525-526
ありがとうございます。本当に助かりました。

539 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 22:47:29.02 ID:tEVs0h0K.net]
半角スペースは削除するが、
《》内の半角スペースだけは残す
というようなことをやるにはどうすればいいですか?

540 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 02:30:11.81 ID:0yaAkPxX.net]
s/[^<>]\{-}\zs \ze[^<>]\{-}\(<[^>]\+>\)\@=//g
うーん我ながらひどいwでもまあ動くぜw入れ子とか勘弁ねw@vim

541 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 05:06:05.67 ID:Gf5Di//A.net]
検索
\G[^ ]*+(?:《[^《》]*+》[^ ]*+)*+\K[ ]++

置換
なし

542 名前:デフォルトの名無しさん mailto:sage [2015/11/04(水) 00:42:18.00 ID:2GmlXuzB.net]
あ、間違えた。これじゃ誤爆する。まぁいないみたいだからいっか

543 名前:デフォルトの名無しさん [2015/11/15(日) 03:36:57.52 ID:2QREH4SF.net]
Pythonで、
text=u"Dog,cat,mouse,bird.Human."
を文字ごとに分割したいんですが、
import re
pattern = r" |,|\."
words = re.split(pattern, text)
では[u'Dog', u'cat', u'mouse', u'bird.Human.']となってしまいます

また、pattern=pattern = r"\s|,|\."だと分割すら行われません
\sが効いていないようです

どのように変えればよいですか?

544 名前:デフォルトの名無しさん [2015/11/15(日) 03:39:42.55 ID:2QREH4SF.net]
ごめんなさい
上の方は、bird.Human.をbirdとhumanに分けたいのと、

pattern = r"\s|,|\."で分割されないのはtext=u'My name is ...'です

545 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 03:49:47.11 ID:+qgiEGrj.net]
>文字ごとに分割したいんですが

文字ごとにって、どういう意味?
例示して

546 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 10:06:11.57 ID:LQyOcx+Q.net]
\ (U+005C バックスラッシュ) が ¥ (U+00A5 円記号) になってしまっているのでは

547 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 10:15:49.91 ID:goCF/v9g.net]
\



548 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 15:42:32.36 ID:rTjjRyT5.net]
パターンの指定でユニコード指定してないからとかかな
環境がWindowsじゃないので試せんけど

pattern = r" |,|\."

pattern = ur" |,|\."

549 名前:521 mailto:sage [2015/11/15(日) 17:30:49.79 ID:FWlzzsCJ.net]
みなさんありがとうございました
どうも>>537さんのurが正しいようでした

>>534
[u'Dog', u'cat', u'mouse', u'bird', u'Human', u'']
のようなことです

550 名前:デフォルトの名無しさん [2015/11/15(日) 18:11:41.60 ID:PV6fOtMt.net]
python2系禁止ですね判ります

551 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 11:27:12.55 ID:o7BebgZg.net]
mateで
【社会】わずか800円の支払いめぐり殴る蹴る 高2生徒ら3人逮捕 [11/17]

みたいななんかニュースのタイトルだけ投稿してるをNGしたいんだけどどうすればいいですか?

552 名前:デフォルトの名無しさん [2015/11/19(木) 13:44:47.18 ID:QaQdEv4L.net]
●Regular Expressionの使用環境
JavaScript 

●検索か置換か?
置換

●説明
「\」(バックスラッシュ)をスラッシュ「/」に変えたいのですがうまくいきません。
普通に str.replace(/\\/g, "\/") で良いと思ったのですが、何も変わりません。

念のため、RegExpで patt = /\\/ として patt.test(str) では true になります。
どうすべきでしょうか?

●対象データ
var str = C:\Test\Out\test.txt

●希望する結果
C:/Test/Out/test.txt

553 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 14:18:24.13 ID:jYNOeoK3.net]
そもそもstr内のバックスラッシュ自体がエスケープ文字扱いだろ。

554 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 15:05:21.02 ID:D79COvYS.net]
str = 'test\\test/test';
window.console.log(str);
window.console.log(str.replace('\\','/'));
window.console.log(str.replace('/','\\'));
これで置換できてるけど
第一引数は正規表現オブジェクトじゃなきゃならん理由があるのけ?

555 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 15:10:19.42 ID:1wzVL5X/.net]
>>541
普通にそれでいいはずだけど?("\/"はエスケープしてもしなくてもいい)
<html>
<script>
var s='var str = C:\\Test\\Out\\test.txt';
document.write(s+'<br>'+s.replace(/\\/g,'/'));
</script>
</html>

556 名前:530 mailto:sage [2015/11/19(木) 15:36:16.35 ID:QaQdEv4L.net]
>>542-544
確かにstrの方はエスケープ文字扱いになってますね。

ですが、処理対象の文字列は 'C:\\Test\\Out\\test.txt' のように2個の\ではなく
あくまでシングルの\です。

※ 実際 \test なんかは \t でタブ扱いになってしまってる。

あと対象データ 「var str =」 は余計に書いてました。すいません

557 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 15:50:50.30 ID:1wzVL5X/.net]
>>545
javascriptの仕様は知ってるんだろ
変数に直接固定文字列を代入する場合は、""の中で\はエスケープして\\と書くが
実際の変数の中では、\一つだけの文字列だよ(表記だけの問題)

別の方法で変数に代入してるのなら、なんの問題もない
(例えば、入力フォームから取り込むとかファイルから読み込む等)
>>544を実行すれば、sには\は1つだけなのがわかるはず。
(s.lengthで文字数調べてみて)



558 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 16:33:08.62 ID:D79COvYS.net]
>>545
進展のないレスだな

既に>>541の要件は満たしてるが
何が解決して何が未解決なのか、貰ったレスで何を得たのか何を試したのか
示して貰わんことには話が進まんよ

エスパーしてみるけど
var str =

559 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 17:16:57.37 ID:bYoVHZ0x.net]
ヽ( ・∀・)ノ● ウンコー

560 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 12:19:41.67 ID:2PUB+AZr.net]
Javascriptですが
/abc/

/^.+abc/
ではどちらが速い(良い)ですか?

561 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 15:54:00.79 ID:KuRdWB2c.net]
後者

562 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 15:54:35.70 ID:KuRdWB2c.net]
っていうか挙動が違うから比べる意味がないな

563 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 16:14:08.95 ID:RTM8BSjV.net]
うん

564 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 17:31:48.63 ID:PeVLng9H.net]
wshや鬼車で比較したところでは、/abc/の方が、マッチした場合でもマッチしなかった場合でも早かったよ

565 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 17:44:44.45 ID:PeVLng9H.net]
>>549
自分で確めてくれ
この文字列以外だと別の結果が出る可能性もある
WSHでのサンプルコードを貼りたかったけどはねられるんでダウンロードしてくれ
ttp://www1.axfc.net/u/3579243

566 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 22:41:00.40 ID:820kEC52.net]
>>553-554
おっしゃる通り/abc/の方が劇的に速くて驚きました
今後も活用させて頂きます
わざわざありがとうございました

567 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 02:26:16.51 ID:oGP4gtxs.net]
matchじゃなくてtestにするともっと差が付く



568 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 12:50:29.55 ID:bk3CsbSP.net]
ブックマークレットにしてFxやChromeで実行したら雲泥の差が出た

569 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 11:07:10.45 ID:ZVfdq9M1.net]
文字列「a」を「bbb」or「cccc」or「ddd」のいずれかにランダムで変換することは
正規表現で可能でしょうか。

●Regular Expressionの使用環境
鬼雲、またはBoost.Regex

●検索か置換か?
置換

●説明
=の右側(後)のみ一致させたい

●対象データ
a@hoge.com
a@hoge.com
a@hoge.com
a@hoge.com


●希望する結果
bbb@hoge.com
ddd@hoge.com
ccc@hoge.com
ccc@hoge.com

よろしくお願いします。

570 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 11:16:22.98 ID:NHyuVX8f.net]
てst

571 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 11:29:39.24 ID:HLJItCvE.net]
正規表現でランダム置換なんてできないだろ?
つーかスパムメールでも送るつもりか?

572 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 15:16:46.07 ID:ZVfdq9M1.net]
ありがとうございます、やはり出来ないですか。
私の知らないだけでもしそういったコマンドがあればと思いお聞きしました。
上は例でしたのでスパムといったことは特にないです。どうもありがとうございます。

573 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 15:37:26.82 ID:TfMgYFKH.net]
鬼雲又はBoostってことはプログラムコードの中ってことだよね
だったら、
a@hoge.comをマッチさせて(aa@hoge.comをマッチさせるのかどうかは知らんが)
ランダム文字列を生成したものと合成すりゃいいじゃん

574 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 15:43:04.74 ID:TfMgYFKH.net]
言語は何か知らないけど概念的にはこんな感じ
loop(n) {str+=random(26)+'a';}
result=textdata.replace(/a(?=@hoge\.com)/,str);

575 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 22:24:19.02 ID:ugBw4vew.net]
BREで文字列の選択はできますか?

576 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 13:36:50.40 ID:iX7NZfvy.net]
back-references ならば、
\(文字列\)

参考
Regular Expressions
pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html

man 7 regex
Man page of REGEX
https://linuxjm.osdn.jp/html/LDP_man-pages/man7/regex.7.html

577 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 09:25:29.24 ID:/RiEuU07.net]
●Regular Expressionの使用環境
Perl5互換

●検索か置換か?
検索

●説明
リンゴの前が「い」ではない文字列だけをマッチさせたい

●対象データ
おいしいリンゴ
まずいリンゴ
どくリンゴ
つぶれたリンゴ
ミカン
バナナ

●希望する検索結果
どくリンゴ
つぶれたリンゴ

否定などを使えば実現出来るのでしょうか。
こういったことが可能であれば教えてほしいです。



578 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 10:02:33.73 ID:6pWPF2x5s]
(.*[^い])リンゴ

579 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 12:21:47.60 ID:Fs99JMqE.net]
.*[^い]リンゴ
.*(?<!い)リンゴ

ポイント
(?<!しい) の代わりに [^しい] などとするのは、考えているのとは違うものになる
look-behind の場合は一文字以上でもいいが、固定長
学習用のキーワード look-behind 戻り読み 後読み

580 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 12:22:39.48 ID:Tlv8AN3c.net]
/(?<!い)リンゴ/

581 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 12:33:15.19 ID:Tlv8AN3c.net]
>>568の2つには
リンゴ
(で始まる)にマッチするかしないかの違いがある

582 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 13:22:41.46 ID:/RiEuU07.net]
>>568
>>569-570
なるほど、そのように記述すればいいのですね。
希望の動作となりました。

頂いた書き方を見ると近いところまでは出来ていたのですが、細かい部分が間違っていました。
お二方、詳しくありがとうございます。

583 名前:デフォルトの名無しさん [2016/01/16(土) 20:12:13.73 ID:VNE9XgKd.net]
●Regular Expressionの使用環境
Ruby 2.1.0

●検索か置換か?
検索

●説明
SYLKファイルのレコードのセパレータを以外を検索したい

●対象データ
C;X1;Y3;K"foo;foo2";EFUNC("A;B";;123;;FUNC2(456;;"CD;EF;;GH"));F1
※サンプルなので上記文字列は正しいSYLKフォーマットではありません

●希望する結果
C
X1
Y3
K"foo;foo2"
EFUNC("A;B";;123;;FUNC2(456;;"CD;EF;;GH"))
F1
のみにマッチしたい

フィールドのセパレータは";"
ダブルクオーテーションで挟まれている";"はセパレータではない
Eフィールド中の";;"はセパレータではない

よろしくお願いします

584 名前:デフォルトの名無しさん mailto:sage [2016/01/17(日) 10:54:04.10 ID:iD/f7ImV.net]
紹介程度なので間違っているところが有るかもしれない
またSYLKフォーマットについてはよく分かりません
ので、適当に直して下さい

ポイント 部分式呼び出し(subexpression call)


#!/usr/bin/ruby

RE = Regexp.compile( <<'__EndOfRE__'.strip, Regexp::EXTENDED )
# definition
(?<content> (?: \g<wQuote> | \g<parenthesis> | [^;

585 名前:デフォルトの名無しさん mailto:sage [2016/01/17(日) 10:55:46.44 ID:iD/f7ImV.net]
紹介程度なので間違っているところが有るかもしれない
またSYLKフォーマットについてはよく分かりません
ので、適当に直して下さい

ポイント 部分式呼び出し(subexpression call)


#!/usr/bin/ruby

RE = Regexp.compile( <<'__EndOfRE__'.strip, Regexp::EXTENDED )
# definition
(?<content> (?: \g<wQuote> | \g<parenthesis> | [^;注意WQ()] )+? ){0}
(?<wQuote> \" [^"]* \" ){0}
(?<parenthesis>
 \(
  \g<content> (?: ;; \g<content> )*
 \)
){0}

# re main
\g<content>(?:;|\Z)
__EndOfRE__

while gets
 $_.chomp!
 $_.scan( RE ) {|matched| p matched[0];}
end

586 名前:デフォルトの名無しさん mailto:sage [2016/01/17(日) 11:04:16.54 ID:iD/f7ImV.net]


587 名前:2ch の bug かな?>>573 は書き込みが途中で、切れました

>>574 注意WQ の所は、ダブルクォート”(半角)です

[circumflex(hat) semicolon double-quote opening-parenthesis closing-parenthesis]
[]
[ここ壊れてます]



588 名前:560 mailto:sage [2016/01/25(月) 00:07:23.44 ID:1Yw/SdQW.net]
>>573-575
ありがとうございます。期待どおりの結果を得られました

しかし
>部分式呼び出し(subexpression call)
Rubyリファレンスマニュアルのその項を読んでみましたが
その式がどのように動くのか理解出来ず・・・orz
もう少し調べてみます

589 名前:デフォルトの名無しさん mailto:sage [2016/01/25(月) 00:18:23.56 ID:PxJn4izo.net]


590 名前:デフォルトの名無しさん [2016/01/27(水) 16:44:20.49 ID:7OoaEKpf.net]
教えてくださいC#で置換です
<script type=

591 名前:デフォルトの名無しさん [2016/01/27(水) 16:48:11.79 ID:7OoaEKpf.net]
<pre><code>教えてくださいC#で置換です
&lt;script type=&quot;text/javascript src=&quot;/hogehoge&quot; &gt;&lt;/script&gt;
に対してキャッシュ対策のためにurlの末尾に?20160125を入れたい
&lt;script type=&quot;text/javascript src=&quot;/hogehoge?20160125&quot; &gt;&lt;/script&gt;
条件1 type属性は前についたり後についたりつかなかったり
条件2 urlがhttp|httpsで始まる場合外部サービスなのでクエリはつけたくない
条件3(できれば)すでに?が含まれている場合は末尾に&20160125をセットする
条件1まではできました
&lt;script(.*?)src=&quot;(.*?)&quot;(.*?)&gt;&lt;/script&gt;
&lt;script${1}src=&quot;${2}&quot;${3}&gt;&lt;/script&gt;
条件2, 3を満たすにはどうしたらよいでしょうか.</code></pre>

592 名前:デフォルトの名無しさん [2016/01/27(水) 16:55:08.37 ID:7OoaEKpf.net]
教えてくださいC#で置換です
<script type="text/javascript src="/hogehoge" ></script>
に対してキャッシュ対策のためにurlの末尾に?20160125を入れたい
<script type="text/javascript src="/hogehoge?20160125" ></script>

条件1 type属性は前についたり後についたりつかなかったり
条件2 urlがhttp|httpsで始まる場合外部サービスなのでクエリはつけたくない
条件3(できれば)すでに?が含まれている場合は末尾に&20160125をセットする

条件1まではできました
<script(.*?)src="(.*?)"(.*?)></script>
<script${1}src="${2}"${3}></script>

条件2, 3を満たすにはどうしたらよいでしょうか.

593 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 17:52:47.55 ID:xlCdIBQv.net]
C#は全く知らんのだけど、(<script.*src="(?!http).*)(\?)?(".*></script>)って感じで
$2が入ってるかどうかで&をつけるか?をつけるか変えれば良いんじゃない?

594 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 13:59:02.70 ID:97c75ht0.net]
c:\aaa\bbb\file.txt
.\bbb\file.txt
file.txt
など、windowsのパス(絶対、相対など)から
file.txt
を取り出す表現を教えてください。

595 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 17:00:13.79 ID:TTafasRV.net]
後ろに\がない位置から末尾まで

596 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 08:22:35.34 ID:AEa1Mqyg.net]
正規表現じゃあできないだろ

597 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 09:01:11.31 ID:LZLEJP3w.net]
/^(.*\\)?(.*)$/
で$2を取り出すとか?



598 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 09:19:22.49 ID:ZGm5BbJ5.net]
っd

599 名前:デフォルトの名無しさん mailto:sage [2016/02/01(月) 01:38:37.18 ID:42LJ55Ye.net]
/[^\\]+$/
でいいよな

600 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 13:31:32.45 ID:Wp28ZdyP.net]
●Regular Expressionの使用環境
C#

●検索か置換か?
置換

●説明
出現する>>数字のみをすべて+1したい

●対象データ
>>1>>2>>1-2>>1-3

●希望する結果
>>2>>3>>2-3>>2-4

601 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 14:46:27.61 ID:yOFSQOe0.net]
>>588
そんなの何に使うと?

602 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 15:17:40.05 ID:xkCOh91z.net]
それを聞いてどうする

603 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 15:31:50.69 ID:chGMw9p3.net]
問題出すために作った問題って実用性がなくてつまらんってことだな

604 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 15:36:08.94 ID:yRO4HgSK.net]
実用性がなかろうが殺人用途だろうが
このスレが知ったことではない

605 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 15:44:26.23 ID:rxAKW9Tr.net]
>>588
ideone.com/DkmZzV

606 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 17:10:36.37 ID:Wp28ZdyP.net]
>>593
ありがとうございます。
申し訳ないのですがこちらの言葉足らずでした。
データには数字だけでなく他の文字も含まれています。
要は2chのアンカーと全く同一です。
その中からアンカーに関連する数字のみをすべて+1したいのです

●対象データ
>>1
>>2
なんたら
>>1-2
かんたら
>>1-3
うんたら

●希望する結果
>>2
>>3
なんたら
>>2-3
かんたら
>>2-4
うんたら

607 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 17:50:46.40 ID:qIgOE2Mph]
(?<=>>)([\d-]+)
後の処理はご自分でドーゾ。



608 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 17:51:34.47 ID:oL+DFss1.net]
(?<=>>)([\d-]+)
後の処理はご自分でドーゾ。

609 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 20:27:18.56 ID:Wp28ZdyP.net]
>>596
どうもありがとうございました。何とか出来たようです。

610 名前:デフォルトの名無しさん [2016/02/16(火) 22:58:07.87 ID:5hX1n3eK.net]
NGexでIP表示スレの特定範囲IPをアボーンしたいのですが
これを正規表現にするとどんなかんじでしょうか?

182.248.0.0-182.251.255.255

611 名前:デフォルトの名無しさん [2016/02/16(火) 23:41:05.17 ID:WEL4Qqsyw]
www.analyticsmarket.com/freetools/ipregex
^182\.(2(4[8-9]|5[0-1]))\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))$

612 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 00:34:07.03 ID:BOXLOMwS.net]
2(4[89]|5[01])

613 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 21:08:52.87 ID:fiOWql8G.net]
11以上の数値にマッチする正規表現はどうやって書けば良いでしょうか?

614 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 22:12:34.67 ID:Nn93sxwn.net]
>>601
全然スマートじゃないけど
/0*[1-9](?:0\d+|[1-9]\d*)/
とか
/0*(?!10(?:\D|$))[1-9]\d+/
とか

615 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 22:59:54.37 ID:fiOWql8G.net]
>>602
ありがとうございました!
凄く助かりました
上は20,30,40,50等がヒットしないようなので
下を使わせて頂きます
本当に困っていたので涙が出るほど嬉しかったです

616 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 23:36:44.62 ID:pjLhb+yw.net]
(1[1-9]|[2-9][0-9]|[1-9][0-9][0-9]+)

617 名前:デフォルトの名無しさん [2016/03/01(火) 00:13:29.69 ID:yoDa+UzO.net]
JavaのMatcherクラス

<div id="aaa">
</div>
<div id="bbb">
 <div id="ccc">
  <div id="ddd">
  </div>
 </div>
</div>

ネストしてるdivタグの囲った範囲の文字列抽出と、idの中身を取り出したい
んだけど、入れ子になってるもののマッチってどうすればいい?



618 名前:デフォルトの名無しさん mailto:sage [2016/03/01(火) 00:57:17.60 ID:QFDKhVDb.net]
>>605
Java知らんけど再帰をサポートしてない正規表現なら
自分でパースする関数を作ったほうがいい

619 名前:デフォルトの名無しさん [2016/03/07(月) 14:11:54.25 ID:oj83hPpT.net]
# .*? の、? は最短マッチ
str = File.read('File1').gsub(/^=begin.*?^=end/m, '')

=begin
複数行コメント
=end

Rubyで、行頭=begin 〜 行頭=end で囲んだ、複数行コメントの部分を、複数行の最短マッチで削除したいのですが、=end の同じ行内で、
後ろに書いた、改行以外の部分もついでに削除したい。以下の ' ABC'

=begin
複数行コメント
=end ABC

620 名前:デフォルトの名無しさん mailto:sage [2016/03/07(月) 14:26:17.00 ID:oj83hPpT.net]
>>605-606
木構造を持っているものは、正規表現では無理なので、Parserを使う

621 名前:593 mailto:sage [2016/03/07(月) 14:43:24.76 ID:oj83hPpT.net]
>>607 自己レス

# .*? の、? は最短マッチ
str = File.read('File1').gsub(/^=begin.*?^=end/m, '#')

str.gsub!(/^#.*$/, '')

元々、行頭が # の行も削除するので、
いったん、複数行コメントの部分を、# に置換してから、
行頭が # の行を削除するようにした

=begin
複数行コメント
=end ABC

これが、以下に置換される
# ABC

622 名前:デフォルトの名無しさん mailto:sage [2016/03/07(月) 15:18:29.62 ID:+tQLURZK.net]
gsub(/^=begin.*?^=end.*$/m, '')でいいんじゃないの?

623 名前:593 mailto:sage [2016/03/07(月) 18:33:50.83 ID:oj83hPpT.net]
>610
# .*? の、? は最短マッチ
str = File.read('File1').gsub(/^=begin.*?^=end.*$/m, '')

複数行マッチで、$ を使ったら、ファイルの最後まで削除された。
以下で、' ABC' だけではなく、'123' も削除された。
たぶん、$ が機能しないで、無視される

=begin
複数行コメント
=end ABC

123

624 名前:デフォルトの名無しさん mailto:sage [2016/03/07(月) 19:40:41.19 ID:bcG1DORl.net]
[\r\n]=end[^\r\n]+

625 名前:593 mailto:sage [2016/03/07(月) 20:46:34.99 ID:oj83hPpT.net]
>612
改行コードが、[\r\n]限定で、それで出来ました。
gsub(/^=begin.*?[\r\n]=end[^\r\n]+/m, '')

=begin
複数行コメント
=end ABC

123

これで、ABCも削除されて、123だけが残ります

626 名前:デフォルトの名無しさん mailto:sage [2016/03/07(月) 22:28:10.83 ID:HxQlSEZO.net]
>>611
自コメで書いてる

627 名前:デフォルトの名無しさん mailto:sage [2016/03/07(月) 22:33:56.04 ID:HxQlSEZO.net]
>>611
自コメで書いてる”end.*?$”はどうだったの



628 名前:デフォルトの名無しさん mailto:sage [2016/03/08(火) 10:02:12.73 ID:N+gwerl0.net]
stra.gsub(/^=begin[^{=end}]*=end[^\r\n]+/m,'')

629 名前:デフォルトの名無しさん mailto:sage [2016/03/08(火) 13:04:09.09 ID:810kd9as.net]
>>610 に ? をつければ、要件を満たすでしょ?
つまり
/^=begin.*?^=end.*?$/m

>>611
> たぶん、$ が機能しないで、無視される
.* だと、123まで greedy に食べて、文の終わりで $ がマッチする

>>607
> 後ろに書いた、改行以外
と書いてはいるが、もし =end ABC の直後の改行まで含めるなら
/^=begin.*?^=end.*?(?:^|\z)/m

630 名前:593 [2016/03/09(水) 00:51:28.21 ID:t6r0Jvyr.net]
>>616
難しそう

>>617
# .*? の、? は最短マッチ
gsub(/^=begin.*?^=end.*?$/m, '')

.*?$ で、最短マッチで、直後の行末に一致しました

=begin
複数行コメント
=end ABC

123

これで、123 だけが残ります

631 名前:デフォルトの名無しさん mailto:sage [2016/03/09(水) 16:28:40.83 ID:i4NOJr2P.net]
エスケープを考慮した置換or検索ってどうやるのでしょうか?

foo

632 名前:デフォルトの名無しさん mailto:sage [2016/03/09(水) 16:35:42.75 ID:i4NOJr2P.net]
途中で書き込んでしまいました><
”は実際には半角のダブルクオーテーションです。

foo”hoge\”fuga\””bar

から

”hoge\”fuga\””

を切り出したいのです。

環境は
dlang.org/phobos/std_regex.html
です。

633 名前:デフォルトの名無しさん mailto:sage [2016/03/09(水) 16:42:08.96 ID:QVSpkpW+.net]
>>619
ご機嫌だな

634 名前:デフォルトの名無しさん mailto:sage [2016/03/09(水) 17:14:05.70 ID:pSSorbbr.net]
(?<!\\)".*?(?<!\\)"
でダメかな?

635 名前:デフォルトの名無しさん mailto:sage [2016/03/09(水) 18:05:33.74 ID:lkt9n8as.net]
"(?:[^"\\]|\\.)*"

基本
[^"]*

エスケープを加える
(?: [^"\\] or \\. )*

636 名前:デフォルトの名無しさん mailto:sage [2016/03/09(水) 19:55:26.16 ID:CzXZOLWV.net]
>>623
\"hage\"foo"hoge\"fuga\""bar

637 名前:デフォルトの名無しさん mailto:sage [2016/03/09(水) 20:45:11.70 ID:lkt9n8as.net]
>>624
>>622 の後で書き込んでいる。当然、考慮済み
それは、必要なら改めて加えれば良い類の、余計な例示



638 名前:デフォルトの名無しさん mailto:sage [2016/03/10(木) 02:05:51.88 ID:mX7rq38E.net]
>>625
いや明らかに不親切だろ
こんな質問する奴にそこまで考慮が及ぶとは考え難い
一言あってしかるべきだったと思うけど

まあ例示は変だけどね
こんなのはあるかも知れない
(`"aaa`) == "\"aaa"
まあ事ほどに言語の記述に正規表現を適用するのは難しい

639 名前:デフォルトの名無しさん mailto:sage [2016/03/10(木) 07:41:20.34 ID:zEnJuJZN.net]
>>626
明らかに不親切かなあ?
「明らか」なのか?
ただの >>626 の主観でしかなくないかい?

どちらかというと俺は、解説やキーワードを付けたりして、親切にしているのだが。

エスケープされたダブルクォートが、ダブルクォートの外に出ている等の場合が普通に想定されるなら
何か断りを入れるよりも、正規表現に加えるよ
通常想定されない余計な場合を考えて、余計なものを付け加えて複雑化したものよりも、
シンプルで理解が進むだろうと、俺は思うよ
そしてその方がより親切だと思う。まあ、自分の主観でしか無いが

> (`"aaa`) == "\"aaa"
これには >>622 もマッチに失敗するけど、別段おかしいとは思わない

こういう別のクォートは、そのクォートの方で処理するべき
他にもシングルクォートや、正規表現 /.../ の中でダブルクォートが存在する場合も有るだろうけれど
別のクォートまで一々書かないよね

ああ、もう時間だ

640 名前:デフォルトの名無しさん mailto:sage [2016/03/10(木) 11:41:50.66 ID:qiWLYw+g.net]
foo”hoge\”fuga\””bar から
”hoge\”fuga\”” を取り出したい
他のケースはなにも考慮しなくていい

というなら
".*"
で済んでしまうな

641 名前:デフォルトの名無しさん mailto:sage [2016/03/10(木) 18:35:57.99 ID:mX7rq38E.net]
>>627
最初のレスはいい
次の>>625が問題レスだって言ってる
これにカチンとくる奴はいっぱいいるぞ
それと (`"aaa`) == "\"aaa"は言語の解析に正規表現を使うっていうこと自体の
無理っぽさを言ったまで
パーサーを使うべき問題

642 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 12:11:21.08 ID:iOVIDxci.net]
無言で難癖の類をつけている >>624 や、必要のない想定について
「一言あってしかるべき」などと続けている >>626 の方に
疑問を持つ人の方が一杯いそう

他人の解答に何か言うのではなく、不満なら自分で答えればいい
他人の解答がなにか言葉が足りないと思うなら、そっと付け加えれば良いだけ

643 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 16:42:52.81 ID:YbW0J/IA.net]
解説をつけて親切に教えたという人が>>625を同じ口で言うとは俄かに信じがたい

644 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 17:14:20.51 ID:ECchds7o.net]
悪意の有る人間に同じ様に親切にする奴なんていないだろ

645 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 18:28:04.43 ID:6kiXFdsY.net]
はいはいお前が正しいからもういいって
お前ってのはこのレス読んだお前のことな

646 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 22:46:54.63 ID:85ImJBBX.net]
未だに何が問題だったのか認識してないようなので解説をば
・まず完璧なレスは誰にも期待はできないので抜けや間違いがあっても仕方はない
 この点を考慮して、最初のレスに不備は全く無い
・次に>>624がいちゃもんだと決め付けて、「そんなことお前よりわかっとるわい、黙っとれ」
 みたいなレスが問題点だと言える
 もし、解説し忘れて抜けてたんだったら、きちんと解説すればいいし、
 熟考の上でわざと書かなかったのなら、こんなレスはつけずに無視してれば良かった
 それに、>>624はいちゃもんとは限っていない
 >>623だとこういう問題点もあるということを質問者に気づかせる意図だったのかも知れない
 その場合リンクを>>620にするかってことだが、何も文章を書かずに例示するだけなら
 俺でも>>623にリンクを貼ると思う

 まあプライドが高くてすぐに剥がれるようなメッキはちょっと見苦しい

647 名前:デフォルトの名無しさん mailto:sage [2016/03/13(日) 22:55:06.34 ID:5pC+CJpl.net]
>>624は、好意的に見てもせいぜい
「エスケープしたダブルクォートが、もしも外に有ったらどうするんだよ?」
位にしか読めないじゃないか
「何言ってんの?お前」って返されても文句言えないだろ
そうは思うが、>>625では淡々と事実だけ書いたんけどな
ああ、気分わるいなあと思ったが感情を抑えて、事実だけな

>>624の様に無言でレスを付ければ、指摘だけしか無いのだから、
どう解釈されても仕方が無いよな。指摘だけで勝負だろ
誤解を生みやすく、結果的に相手の感情を害したとしても。

もし、相手を傷つける意図がないならば、感情の行き違いを避け、
誤った意図やニュアンスで伝わらない様に、文章を添えるべきだよね

>>624では、バカにされても仕方が無い様な、おかしな指摘を無言でしておいて、
こちらはそれもしていないのだが、語句がキツくて気に入らないとか、
逆ギレもいいところだろ。怒っていますと繰り返している、
あなたの方がお高いプライドの持ち主なんじゃないの?



648 名前:デフォルトの名無しさん mailto:sage [2016/03/13(日) 22:55:30.93 ID:5pC+CJpl.net]
> 熟考の上でわざと書かなかったのなら、こんなレスはつけずに無視してれば良かった
無言のレスに、レスを付けて何が悪いのか?は?

> 質問者に気づかせる意図だったのかも知れない
自己弁護も白々しく、しかも都合が良すぎる
そんな相手の意図まで、相手の都合の良い様に汲み取るべきとか。おかしいだろ

> 俺でも>>623にリンクを貼ると思う
この過疎スレで、なに第三者のふりをしているの?本当に第三者だとして
他人の言い合いなんかにわざわざ首を突っ込んできているんだ。へぇー(棒)

649 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 11:28:40.42 ID:+5uiuB8z.net]
こういう言い合いになると最後にレスしたほうが勝ちだと思ってる奴多いけど
実際のところ最後になった奴が一番惨めだよな

どうだ言い返してやったぞ、今度は何言ってくるんだ言えるものなら言ってみろよと
wkwkしながらスレリロードしてるのに、誰からもレス付かないまま立ち消えていくのは
勝利とはほど遠い虚しさで不憫きわまりない

650 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 12:26:39.42 ID:OwtYwpEx.net]
いい加減スレチ
言い合いは他所でやれ

651 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 16:31:18.59 ID:CkOIJo3B.net]
visual studioの検索置換で正規表現使うと、なんか動きがおかしい時ないですか?

652 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 07:11:42.49 ID:bcM3RviG.net]
自演乙

653 名前:デフォルトの名無しさん mailto:sage [2016/03/19(土) 22:11:37.95 ID:DRR7a7MQ.net]
●Regular Expressionの使用環境 → 無料のテキストエディタ、または秀丸
  
●検索か置換か?→ 検索

●説明

@行頭が数字で始まらない、Aを含む行だけ検索したい。
A行頭が数字で始まらない、行末にAが来る行だけ検索したい。

●対象データ
123 fooA
foobarA foobar
548 fooA
foobarA foobarA

●希望する結果
@
 foobarA foobar
 foobarA foobarA

A
 foobarA foobarA

よろしくお願いします。

654 名前:デフォルトの名無しさん mailto:sage [2016/03/19(土) 23:44:13.39 ID:8UZGwfqY.net]
>>641
^[^\d].*A.*$
^[^\d].*A$

655 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 00:17:07.16 ID:6E3rfl+p.net]
thx

656 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 01:10:35.08 ID:dD/6nOCQ.net]
>>636
悪くはないかもしれないが、どうしても一言言わずにゃおれなかったっていうみえみえの心理状態だな

657 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 04:18:17.30 ID:P2wGuxR2.net]
>>642
ありがとうございます。



658 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 07:03:52.63 ID:BKY+bqXr.net]
<div>
  <p></p>
  <p></p>
</div>
<div>
  <p></p>
  <p></p>
</div>

こういうhtmlを2つの<div>のグループに分離したいのですが、
<div>.*</div>
とすると当然、先頭の<div>と末尾の</div>にマッチしてしまいます。
途中の<div>や</div>にはマッチさせない記述を教えて下さい。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


659 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 08:42:50.38 ID:4Rc5hh5g.net]
>>644
普通レスを返すだろ

>>640 では、気を使って抑え気味にしてやったのに、まだ言うかw
「こんなレスはつけずに無視してれば良かった」のは、まさにお前の様な奴に投げかけられる言葉

こんな >>624 >>626 >>628 例をあげて恥ずかしくないの?
こんな >>637-639 みっともない自演をしておいて、恥ずかしくないの?

660 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 11:16:00.38 ID:zSHF45+D.net]
>>646
<div>.*?</div>

661 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 12:04:54.80 ID:BKY+bqXr.net]
>>648
ありがとうございました。

662 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 20:07:22.01 ID:tOEh7O6K.net]
>>605
それPEG使ったほうがいい。最近勉強したけど楽しい。
構文解析って名前ほどおっかなくないよ

663 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 13:05:37.99 ID:NsIeGKek.net]
>>650
普通にパーサー使って
xpathで//div/@idかcssセレクタでdiv[id]でよくね

664 名前:デフォルトの名無しさん mailto:sage [2016/03/31(木) 16:52:39.49 ID:LLptTgcg.net]
正規表現の文字クラスで質問です。例えば
[0-9]は数字を表しますよね。また、\dも数字ですよね。
\dを[]内で使って[\da-z]で数字と小文字のa-zとかってありなんでしょうか??
縦棒を使って
(\d|[a-z])でやれば明白ですが。

665 名前:デフォルトの名無しさん mailto:sage [2016/03/31(木) 17:03:53.30 ID:LLptTgcg.net]
お騒がせしました。[\d]はありっぽいですね。

666 名前:デフォルトの名無しさん mailto:sage [2016/04/03(日) 00:37:59.69 ID:wkb28L2F.net]
>>647
>>625での主張は「俺は知ってるぜ」
これだけを言いたいがための発言

667 名前:デフォルトの名無しさん mailto:sage [2016/04/03(日) 19:57:17.70 ID:tpyVZV/3.net]
>>654
>>654での主張は「全て論破されていて悔しいです」
これだけを言いたいがための発言



668 名前:デフォルトの名無しさん mailto:sage [2016/04/04(月) 00:17:04.24 ID:TBgct8lK.net]
>>625のいけないところは
素直に知ってたよって言えば誰も噛み付かなかったのに、プライドが邪魔したのかひねくれた言い方をした点

669 名前:デフォルトの名無しさん mailto:sage [2016/04/04(月) 01:37:22.43 ID:TBgct8lK.net]
>>655
勝ち負けを言えば、>>647を書かせた時点で決着してる
相手を全部同一視して粗探しするその品性の悪さを引き出したって点でね
それに、喩えると
交通違反して注意された相手に向かって、みんなやってることだとかお前だってやってた
って言っても自分のしたこととは関係ないことであり論理的に意味がない

670 名前:デフォルトの名無しさん mailto:sage [2016/04/04(月) 21:25:02.74 ID:im7Mb0Qo.net]
品性の悪さを引き出した -> 勝ち

この論理性の無さ...
それに加えて、無意味な喩え話...



ある程度、会話が通じる人かと思っていたのだが
残念だ。残念な知性だな

正規表現の実例についてもつくづくそう思うが
もう少し考えてから書き込んでみたらどうか?

671 名前:デフォルトの名無しさん mailto:sage [2016/04/04(月) 21:26:10.86 ID:im7Mb0Qo.net]
勝ち負けと品性が直接の関係は無いが、品性の悪さについて


品性の悪さって、自演をした人が言える事なのか?



たとえ自演がなくとも、
何度も同程度の発言を、そちらからもしている事に気付かないのかな?

>>631の嫌味っぽい口ぶりや、>>634の「解説をば」みたいな上からの物言い
>>634最後の一行では、無意味なただの悪口

そして決定的なのは、自演をしていた事。これについては、同程度どころでは無い



これらは、品性の悪さに該当しないと思っているのか?

672 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 09:00:13.83 ID:2zN0IQcS.net]
ワラタw
まさにどちらが最後まで醜態を晒し続けるかの勝負だな
いいぞもっとやれ

673 名前:デフォルトの名無しさん [2016/04/06(水) 10:46:43.24 ID:xAgh0Pyq.net]
JAPANXXX
JAPANYYY
JAPANZZZ
上のような文字列のうち最後のJAPANZZZの部分を取りたいです
XXX YYY ZZZの部分は3文字からなる大文字になっていて
もちろんJAPANZZZで文字列が終わっているわけではありません
今はJAPAN([A-Z]{3})で全て取得したのをリストに入れて
リストの一番最後の要素を取り出すという手法で対応していますが
正規表現1つで出来たりしませんか?

674 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 12:52:05.84 ID:BFsTf7eA.net]
先読み・後読みなどで、出来ない?

675 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 13:15:18.35 ID:RIb7jbh2.net]
どうなの

676 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 13:17:07.81 ID:xwA6Cy1b.net]
キャプチャで最後に残った値

677 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 13:17:59.59 ID:RIb7jbh2.net]
(・∀・)



678 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 14:05:37.34 ID:q1HrDxSz.net]
俺だったら"JAPAN"でsplitして三番目を取る

679 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 17:09:53.06 ID:Ek6gxOxq.net]
(?:^JAPAN[A-Z]{3}\n)*(^JAPAN[A-Z]{3})(?:\n|\z)

680 名前:デフォルトの名無しさん [2016/04/07(木) 16:14:06.36 ID:CD0MGG23.net]
perl -0777 -ne '/.*JAPAN([A-Z]{3})/s and print( $1)'

みたいなこと?

681 名前:647 mailto:sage [2016/04/07(木) 16:34:11.93 ID:EyxL+HBb.net]
皆様レスどうもありがとうございました

>>668
これでバッチリです
ちょっと$0はカオスなことになりますが
なるほどなーって思いました

本当ありがとうございました!

682 名前:デフォルトの名無しさん [2016/05/01(日) 11:29:16.87 ID:tKi6j9CT.net]
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
1

683 名前:デフォルトの名無しさん [2016/05/04(水) 09:53:54.35 ID:runBAjzV.net]
FXのヒストリカルデータで、休日の値動きの無い連続複数行(数百〜数千行)範囲を置換で削除したいのですが
正規表現での表記方法はありますでしょうか?

2003.05.09 20:55:00 1.14859 1.14875 1.14853 1.14862 517.5
2003.05.09 20:56:00 1.14867 1.14882 1.14862 1.14882 584.7
2003.05.09 20:57:00 1.1488 1.14886 1.14854 1.14859 1268.8
2003.05.09 20:58:00 1.1487 1.1487 1.14845 1.1485 1089.5
2003.05.09 20:59:00 1.14863 1.14897 1.14838 1.14877 1558.5
2003.05.09 21:00:00 1.14877 1.14877 1.14877 1.14877 0
2003.05.09 21:01:00 1.14877 1.14877 1.14877 1.14877 0
2003.05.09 21:02:00 1.14877 1.14877 1.14877 1.14877 0

上記の例では、2003.05.09 21:00:00以降で1.14877が継続する行全部を削除したいです。

684 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 10:33:36.14 ID:kVGM/VsN.net]
できません

685 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 11:00:55.09 ID:S+T3H7rB.net]
>>671
一度一致した文字列の複数回出現や繰り返しは、「後方参照」で表現できる
^\d{4}\.\d{2}.\d{2} \d{2}:\d{2}:\d{2} ([.0-9]+) \1 \1 \1 0$

686 名前:657 mailto:sage [2016/05/04(水) 15:43:24.43 ID:Z8i1J0Td.net]
>>673
ありがとうございました

687 名前:デフォルトの名無しさん [2016/05/05(木) 14:54:42.43 ID:jemhh2fV.net]
すんませんわけわかんなくなってきた

「1回以上の abcdefg いずれ



688 名前:ゥの文字の繰り返し、ただし ccd+cc を含まない」
例えば abcd 、 ffgabc 、 bbbbbbbbbbbbbdddddbbbbbbb にはヒットし
abcdffgabcbbbbbbbbbbbbbdddddbccdddddddddccbbbbbb をかけると abcdffgabcbbbbbbbbbbbbbdddddb (と bbbbbb )を得られる正規表現
どうやって作ったら良いんでしょうか
[]
[ここ壊れてます]

689 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 15:07:34.77 ID:/qWvSKFr.net]
できません

690 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 15:08:33.46 ID:WWv6suKc.net]
>>675
例が悪い。
もう少し簡潔な例をたのむ

691 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 15:44:38.89 ID:jemhh2fV.net]
>>677
混乱しててマジすまん。要は>>8の文字列じゃなくてパターンな版なんだと思う

「fuck you hageatama atodekorosuwaboke」からアルファベットのみで構成されるものを取り出したい、
ただしatではじまり間にaを含まずaで終わる範囲は無視させたい
この場合は【fuck、you、hage、ma、boke】を抜き出したい
わずかでもわかりやすくなっただろうか

692 名前:デフォルトの名無しさん [2016/05/05(木) 17:02:33.50 ID:Vl8awOB0.net]
perl -ne 's/at.*?a/ /g ; while ( /([a-z]+)/g ){ print("$1\n") }'

みたいなこと?

693 名前:デフォルトの名無しさん [2016/05/05(木) 17:04:50.71 ID:Vl8awOB0.net]
ごめん、
perl -ne 's/at[a-z]*?a/ /g ; while ( /([a-z]+)/g ){ print("$1\n") }'
の方が適切か?

694 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 17:21:59.07 ID:jemhh2fV.net]
そうそう本当まさにそんな感じ
ちょっと面倒な置換処理だから前後逆になるけど今はそうやって2回かけて処理させてる

695 名前:デフォルトの名無しさん [2016/05/06(金) 06:53:01.39 ID:x6pgYKN7.net]
置換無しでやりたいならできなくもないが……

perl -ne 'print("$_\n") foreach grep { defined } /at[a-z]*?a|((?:(?!at[a-z]*?a)[a-z])+)/g'

あまりおすすめする気にはならない。

696 名前:デフォルトの名無しさん [2016/05/06(金) 07:23:44.50 ID:x6pgYKN7.net]
これの方がいいかな……

perl -ne 'print("$_\n") foreach map { /([a-z]+)/g } /\G(.*?)at[a-z]*?a/cg , /\G(.*)/'

697 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 17:29:17.30 ID:TO5u1IEC.net]
ムリしてみた
print $1 while /(?:^|\s+|at[b-z]*a)?([a-z]+?)(?:$|\s+|at[b-z]*a)/g;

普通はこんな感じだろうな…
print foreach grep /^[a-z]+$/, split(/\s+|at[b-z]*a/);



698 名前:デフォルトの名無しさん [2016/05/08(日) 22:30:43.49 ID:F7OZ3lhh.net]
ある関数の第一引数の中身Aだけをとるような正規表現を書いているのですが上手く書けません。
サクラエディタのgrepで試しています。

本文:
func('A','B','C')

正規表現(funcから第一引数のシングルクォーテーションまでひっかかってしまう)
func\('.+?'

699 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 22:53:57.63 ID:Se7Rfius.net]
>>685 こういうのじゃなくて?前段(?<=look-behind)に可変長使えないけど
(?<=func\(').+?(?=')

700 名前:デフォルトの名無しさん [2016/05/08(日) 23:12:33.60 ID:F7OZ3lhh.net]
関数の前の文は可変長でなく、行頭固定になっています。
↑こういうことでいいのでしょうか??

結果として「A」が欲しいのですが、
「array('A'」が返ってきます。


抽出には2つぐらい側面があると思います。


701 名前:P.関数の構文を抽出
2.第一引数を抽出(囲み文字除去)

これを一度にできるのかよくわかっていません。
最低限の情報「func('A'」は取れているので、
ここから整形していくのでも事足りますが。
[]
[ここ壊れてます]

702 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 23:33:47.20 ID:Se7Rfius.net]
>>687
>>686で取れない?結果出力を該当部分(P)にしても?

・うちとこの出力
> □検索条件 "(?<=func\(').+?(?=')"
> 検索対象 *
> フォルダ M:\home\kirin\desk
> (サブフォルダを検索しない)
> (英大文字小文字を区別しない)
> (正規表現:bregonig.dll Ver.3.06 with Onigmo 5.15.0)
> (文字コードセットの自動判別)
> (一致した箇所のみ出力)
> ◎"C:\home\mityaiyan"
> ■
> ◆"無題1.txt" [SJIS]
> ・( 1,7 ): A
> 1 個が検索されました。

・C:\home\mityaiyan無題1.txt の内容
> func('A','B','C')

703 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 23:40:40.22 ID:Se7Rfius.net]
フォルダ名誤魔化せてねえw酔っ払いは寝ますw

704 名前:デフォルトの名無しさん [2016/05/08(日) 23:41:37.38 ID:F7OZ3lhh.net]
>>688
ありがとうございます。取れました!

たまに正規表現使うけど、毎回つまづきます。
ドリルみたいなのやろうかなぁ。

705 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 23:50:09.70 ID:Se7Rfius.net]
あ、よかったよかったw
sakuraでも出来るけど、vimのインクリメンタルサーチ(キーボードコマンド / )が
即反応すっから楽よ(vimrcに :set hlsearch incsearch)。windowsならkaoriyaさん行けばなんとかなるっしょ。

706 名前:デフォルトの名無しさん [2016/05/09(月) 00:25:28.10 ID:d1XxHLWY.net]
はい、試してみます!

vim使えるとかっちょいいですよね。

707 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 14:28:46.48 ID:vqaogAj1.net]
[]や|で条件を書き並べる場合って頻出するものほど左側に書いたほうがいいのでしょうか?
左から順に調べてるようならその方がいいかなと思ったのですが



708 名前:デフォルトの名無しさん [2016/05/10(火) 16:04:02.58 ID:eU8B0sOX.net]
Perl で (pat1|pat2) という書き方をした場合は pat1 にマッチしたら pat2 は試行されない。

perl -e 'print("abcde" =~ /(c.|.de)/ )'

だからマッチさせたい順に書く必要がある。
文字クラスの場合は「そこに書いてあるすべての文字」に含まれるか(あるいは含まれないか)だから順序は関係ない。
処理系の実装の仕方によっては速度に影響するかもしれないが心配するほどの事はないだろう。
Perl じゃないなら違うルールがあるかもしれない。マニュアルに書いてあるかもしれないし明確には書いてないかもしれない。

709 名前:デフォルトの名無しさん [2016/05/10(火) 16:26:20.31 ID:eU8B0sOX.net]
(pat1|pat2) と書いたときの pat1 と pat2 が排他的にしかマッチしないと判ってるなら
頻出するものほど先に試行されるように書けば速くなる可能性はある。
でもそれが「左から順に」なのかどうか…少なくとも Perl はそうだし大抵そうだとは思うけど……

710 名前:デフォルトの名無しさん [2016/05/10(火) 16:49:53.11 ID:eU8B0sOX.net]
もしかしてだけど、flex とかを使ってるなら、頻出する順かどうかはあまり関係ないことになる。
これはパターンを DFA にコンパイルしているからで、grep も可能な場合はそうしているらしい。
おそらくあなたはそんなややこしいことを知りたかったわけではないでしょう。本当に申し訳ありません。
でも結局の所、あなたが何を使っているのか判らないので明確には言えないのです。

711 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 16:54:06.71 ID:1NI6zfsZ.net]
速度は実測が基本

712 名前:デフォルトの名無しさん [2016/05/10(火) 23:01:59.50 ID:4a+25nqa.net]
DFA型は原理的に最長一致になる
たとえばAWKはそのパターン

713 名前:
NFA(VM)型はそうではない
Perlなど
[]
[ここ壊れてます]

714 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 17:17:28.22 ID:+WUK7FN+.net]
ここに書いてある正規表現はどう書けばいいでしょうか?
potato.2ch.net/test/read.cgi/software/1463030885/10

715 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 17:34:44.27 ID:+WUK7FN+.net]
と実体参照で空白文字が保存されていました
ありがとうございました

716 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 17:35:05.24 ID:+WUK7FN+.net]
&#32;と実体参照で空白文字が保存されていました
ありがとうございました

717 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 21:09:44.20 ID:IB3IbmGC.net]
ソフトウェア板のwhitebrowserスレで質問しましたが人がいないようなので
ここで質問させてください。
<div class="aaa"></div>
<div class="bbb">
<p class="ccc">文字列komento
<div class="ddd">文字列<A href="eee/" >文字列</A>文字列</DIV></DIV>
webから文字列komentoの部分が欲しいんですが
if(line.match(/<p class="ccc">(.+)<div class="ddd">/)){
komento = RegExp.$1.strip();
continue;
}
だとぜんぜんヒットしません。
<p class="ccc">と文字列komentoは分断されてるみたいでヒットしません。
複数行にわたるときは(.+)を([\s\S]+)にすればよいと書いてあったんですがだめです。
よろしくお願いします。



718 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 21:36:52.13 ID:6l/rGwyM.net]
>>702
改行(\n)は (.*) ではキャプチャできない
[\s\S]* とか [.\r\n]* とか

719 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 21:39:28.59 ID:6l/rGwyM.net]
よく読んでなかった
[\s\S]+?でダメだったのか

720 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 21:55:01.60 ID:NPHl4wm3.net]
lineという変数名から推測するに、元々この変数に
一行分の文字列しか入ってないとか? もしそうなら
dddの方のdivはないのでマッチしないだろうな。

721 名前:688 mailto:sage [2016/05/30(月) 22:52:36.47 ID:IB3IbmGC.net]
お答えありがとうございます
>>703
だめです
>>704
だめでした
>>705
まったく初心者でプログラムわからない状態で人がつくったものを改造してるので
もっとがんばってみます

上のほうにネストはParser使えとか書いてありましたがこれは違うのでしょうか
if(line.match(/<div class="ddd">(.+)/)){
komento = RegExp.$1.strip();
continue;
}
こうやると 文字列<A href="eee/" >文字列</A>文字列</DIV></DIV>  これはものすごいヒットするんですが
/<p class="ccc">(.+)/ だとぜんぜんだめで/<p class="c(.+)/ こうやると cc"> とヒットします
</p>が省略されてると無理なんでしょうか

722 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 23:10:10.83 ID:IB3IbmGC.net]
var lines = request.responseText.split('\n');
for(var i = 0 ; i < lines.length ; i++) {
var line = lines[i].strip();

上のほうにこういうふうに書いてあります
もうひとつの文字列取得には
if(title == '' && line.match(/<\/h1>/)){
var lineContainsPrev = lines[i - 1].strip() + line;
if((lineContainsPrev.match(/<h1 .+<span id="title[^"]+">([^<]+).+<\/h1>/) ||
lineContainsPrev.match(/<h1 id="title[^>]+>(.+)<\/h1>/))){
title = RegExp.$1.strip();
}
}
こう書いてあります
なるほどi-1とかlineとか691さんの指摘でがんばってみます

723 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 23:14:45.25 ID:7kwM1x1R.net]
regexp

724 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 00:35:17.36 ID:Fu4PLM5v.net]
.split('\n')で各行を分離して配列に格納してるんだぜ
これが解からないのなら改造はまだ早いんじゃないか

725 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 03:14:16.76 ID:Dv/sZKtx.net]
>>709
ありがとうございます
なるほどそういうことか

726 名前:デフォルトの名無しさん [2016/06/03(金) 16:43:00.18 ID:omAy1yMo.net]
保存した複数のhtmlファイルから特定の段落を削除したくて、秀丸エディタと正規表現にたどり着きました
単調な文字列を置き換え削除する分には何とかなりましたが、下記のような段落を削除したいところで詰りました

かなり長くなってるところは〜省略〜で省きました

<script src="%E7%8F%BE%E5%〜省略〜_files/widgets.js" id="twitter-wjs"></script>
<script type="text/javascript" src="%E7%8F%BE%E5%〜省略〜%83%A9%E3%82%A4B_files/analytics.js"></script>
<script type="text/javascript">archive_ana〜省略〜_ms=149;</script>
<link type="text/css" rel="stylesheet" href="%E7%8〜省略〜/banner-styles.css">

これを丸ごと削除したいのですが、うまくできないでしょうか
ご教授いただけると助かりますOrz

727 名前:デフォルトの名無しさん [2016/06/03(金) 16:52:28.32 ID:oVxvX7jc.net]
>>711
そういうのはパーサつかってxpathやcssセレクタで指定するといいよ



728 名前:デフォルトの名無しさん [2016/06/03(金) 17:13:46.63 ID:omAy1yMo.net]
>>712
秀丸エディタをDLして、正規表現をググったのが1時間くらい前の自分にはもう手に負えないですね
とても経験値が足りない・・・大人しく手作業に戻ります

レスありがとうございましたorz

729 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 18:13:59.18 ID:1QnvZmyp.net]
オンデマンド

730 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 18:22:31.49 ID:IHHtpHf1.net]
秀丸より「複数行置換」っていうソフトならとっつきやすいかもしれない
正規表現でなくともお望みの作業が捗る可能性があると思う

731 名前:デフォルトの名無しさん [2016/06/03(金) 18:49:20.79 ID:534uxXCy.net]
もう少し条件を明確にしてほしい。
単に script,script,script,link の順に現れた時に削除したいなら特に難しくは無い。

perl -0777 -pe 's%(?:(?><script.*?>.*?</script>)\s*){3}<link.*?>%%'

ただ、タグの終わり以外で > があったらとかそういうことを考えるとちゃんとパーサを使った方がいい。
そうでなくても、属性値が関係あるなら多分、パーサを使う方が楽。

732 名前:デフォルトの名無しさん [2016/06/03(金) 19:31:31.26 ID:omAy1yMo.net]
>>715
早速試してきましたが、範囲を決める表現が出来ずやはりダメでした

ソフトが多く出てるのでもっと気軽に出来るかと思ったんですがやはり難しいですねOrz

733 名前:デフォルトの名無しさん [2016/06/03(金) 19:40:07.02 ID:omAy1yMo.net]
>>716
複数のhtmlファイルがあり、それぞれの中に
i.imgur.com/sVuSXPN.jpg
この段落があり、これを楽に削除したいんです


これが長く、中の文字列がそれぞれ異なっているんです

734 名前:デフォルトの名無しさん [2016/06/03(金) 19:43:03.37 ID:omAy1yMo.net]
パーサってのをググってみたが、素人の毛みたいな自分にはとても手が出せないとだけよくわかりました
自分では楽に出来ないというのがわかっただけでも少しすっきりしました

_| ̄|○ 構ってくれてありでした

残り65ファイル・・・がんばるぞ(´Д`)

735 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:15:24.35 ID:VlhAlbVL.net]
orz

736 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:15:55.42 ID:VlhAlbVL.net]
orz

737 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:18:33.85 ID:VlhAlbVL.net]
hy



738 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:29:12.24 ID:lvHDuhOW.net]
素人に毛が生えたとは言うけど毛の部分かよw

739 名前:デフォルトの名無しさん [2016/06/03(金) 21:47:07.35 ID:534uxXCy.net]
そんなにたくさんあるなら……というか、なぜそんなことになってるのかも気になりますが、
諦めるにはまだ早いように思いますよ。
手作業でできるなら、その部分を見分けているということでしょう?
見分けることができるならそれをプログラムにすればいいんです。
あるいは逆転の発想で、残す部分を特定してそれ以外を削除するという方法もあります。

740 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 00:15:52.08 ID:3lsMjWzh.net]
正規表現でも、複数行マッチはできる

マッチする始まりと終わりを、明確に定義して
始まりは、
<script

終わりは何?

そして、最短・最長マッチのどちら?

741 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 00:48:33.64 ID:Ps50QdLu.net]
>>725
多分そんな簡単なものじゃないだろう
複数のhtmlで全部記述が違うらしい
<script src=〜 />は広告らしきものwidgets.js等が含まれるものをチェックか?
<script type=〜や<link type=〜の方は何だろう
analytics.jsやarchive_ana、banner-styles.css等の広告らしこものを含むってことかな?

どれくらいhtmlファイルがあるのかにもよるけど、
俺なら、20個程度までならキーワード検索して手動で置換していくことを選ぶな

742 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 13:37:52.64 ID:j94Yoh41.net]
スクレイピングでググると幸せになれるかもね。
ブラウザに読み込んで jQuery 辺りでやってもいいけど。

743 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 14:14:35.14 ID:iA3zFnyd.net]
うむ

744 名前:デフォルトの名無しさん [2016/06/12(日) 03:31:34.52 ID:73Qykobl.net]
d12.IDやd34asd.Q23のようにdhogehoge.hugaをIDやQ23のようにhugaのみにしたいときは
どのように書けば引っかかってくれるでしょうか。
d*.のように書きましたがダメでした。

745 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 07:27:48.72 ID:zd4DMI3N.net]
* はグロブ・正規表現で、異なる意味

グロブでは、0文字以上の任意の文字列

正規表現では、直前の文字が0個以上。
.* は、0文字以上の任意の文字列

746 名前:デフォルトの名無しさん [2016/06/13(月) 09:02:38.16 ID:IO7ImC7y.net]
d.*?\.

747 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 09:13:51.82 ID:trc3/qjd.net]
横d



748 名前:デフォルトの名無しさん [2016/06/13(月) 23:35:01.47 ID:Jxar6H6t.net]
>>731
>>730
無事出来ました。ありがとうございます。

749 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 20:43:13.97 ID:JpAU7CI1.net]
ぐぐってもちんぷんかんぷんでしたので助けてください!!1!1
複数桁の数字(桁数は2~8桁)
ここにあれこれ
ここに書き換えたい文字列
という書式の場合で複数桁の数字が10未満(以下でもかまわない)ならx、
11以上20未満(以下でもry)ならy、21以上30未満(ry)ならzという具合に三行目の部分を一行目の数字に応じて書き換えたいです
ソフトは複数行置換?というのを使おうと思っています!!へぷるみー!!!

750 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 21:07:54.45 ID:MJXh41jF.net]
テンプレ使って書き直せ

751 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 09:03:40.70 ID:UhMCD/nz.net]
とりあえず自分の言いたい事を整理する事と日本語の勉強から始めろ

752 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 09:15:50.44 ID:5nGrgvW4.net]
何を言ってるんだか

753 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 09:34:23.84 ID:mJGEUiRz.net]
どう考えても正規表現よりスクリプト書いたほうが早い案件

754 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 09:51:44.41 ID:YIat+Pjl.net]
すみません!!720ですが自決しました!!!
ありがとうございました!!!

755 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 09:59:41.38 ID:zRCZ15a1.net]
じけつ [自決]
1.自分の意志で態度・行動などを決めること。
2.責任をとって自殺すること。自裁。

756 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 13:11:46.34 ID:ltaRG/Ox.net]
>>739は2だろうね

757 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 13:27:37.45 ID:nv7wJLuk.net]
>>739
生きろ!



758 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 15:20:34.12 ID:gZwGLfL5.net]
正規表現2.0を作って、区切り文字で複数表現可能、否定表現あり、文字コード指定可能に
拡張する動きはないのだろうか

759 名前:デフォルトの名無しさん [2016/06/17(金) 06:39:43.91 ID:/w4sLl17.net]
●Regular Expressionの使用環境
鬼車系のbregonig.dll 3.06対応テキストエディタ

●検索か置換か?
置換

●説明
前でマッチした文字列と同じ文字列が後ろで出てきたら、
その間の文字を区切り文字カンマに置換したい

●対象データ
hogefugahoge
イチロー林イチロ

●希望する結果
hoge,hoge
イチロ,イチロ

実際の対象データは改行を跨ぐこともあるのですが、
それだとbregonig.dll対応テキストエディタでメジャーなサクラエディタで
動作確認できないので、
サンプルデータは改行を跨がないものにしました。

宜しくお願いします。

760 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 07:13:49.91 ID:8ETU/t+F.net]
(´・ω・`)

761 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 07:18:02.69 ID:vEeDcLaa.net]
.

762 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 07:51:45.05 ID:Q79nDsuO.net]
(.{2,})(.+?)\1
$1,$1
このサンプルデータだけなら動確サクラエディタ

763 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 08:01:19.73 ID:izLNj4Mm.net]
肯定・否定の先読み・後読みで、できないか?

764 名前:デフォルトの名無しさん [2016/06/17(金) 11:52:55.98 ID:MU7aCzOf.net]
マ イ ン ド コ ン ト ロ ー ル の手法

・沢山の人が、偏った意見を一貫して支持する
 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法

・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法

偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い

靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト

10人に一人は カ ル ト か 外 国 人

「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !

765 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 19:34:05.50 ID:yged7CRH.net]
皆さんは肯定、否定、先読み、後読みの記号をどういう風に覚えているの?
何度覚えても忘れるんです。

766 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 19:45:29.03 ID:BW6jIpWJ.net]
使ってりゃ覚えるだろ

767 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 20:14:27.15 ID:2jKkT25y.net]
そらそうだ



768 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 21:42:53.66 ID:pDomqkOe.net]
あるAndroidアプリで、任意の2つの文字列が、下記のようにセットされているのですが、この真ん中のダブルコロンをイコールで挟む意味が解りませんでした
そもそも正規表現でしょうか?

文字列あいう=:=文字列かきく

769 名前:デフォルトの名無しさん [2016/06/18(土) 00:00:12.34 ID:TDIsYK64.net]
ねづっちがなんだって?

770 名前:デフォルトの名無しさん [2016/06/18(土) 01:59:37.22 ID:q51kEhx9.net]
<=>
これは、宇宙船

771 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 15:01:36.56 ID:AGMP56Qn.net]
>>750
加法定理とか倍角の公式とか
和積公式積和公式全部言えるか?

772 名前:デフォルトの名無しさん [2016/06/20(月) 23:56:45.49 ID:2ch+sFRM.net]
mateで絵文字を正規表現で全部ひっかけたいんだけどシステム屋さん当該の正規表現おせーて

773 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 18:19:47.68 ID:9ARC/f7H.net]
[+-0-9.]
と書いた場合
+
-
0〜9
小数点 .
のどれか一文字と言う意味になりますか?
マイナス記号が0-9なら範囲を表すのに
+-0
の部分では範囲と間違った解釈される心配は無いのですか?

774 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 18:21:44.72 ID:E1t+8hag.net]
めっちゃあるよ

775 名前:デフォルトの名無しさん [2016/06/23(木) 18:22:27.67 ID:O6DvkpvP.net]
気になるならこれで
[+\-0-9.]

776 名前:デフォルトの名無しさん [2016/06/23(木) 18:23:14.87 ID:O6DvkpvP.net]
>小数点 .
>のどれか一文字と言う意味になりますか?

ここは小数点のみを期待するなら \. と書く必要があるんじゃね

777 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 18:40:42.16 ID:Aga9lXuQ.net]
[]の中じゃ、 '.' や'*'はメタ文字じゃなくて文字の'.','*'を意味する
他にも '^'は先頭に記述したときのみ否定というメタ文字になるが途中だと'^'という文字を表す
'-'は先頭に書いたときには\でエスケープしなくてもいいが推奨は必ず\でエスケープすること



778 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 18:49:12.90 ID:QqtwN9tu.net]
小数点なら \,\d とかにしないと

779 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 18:59:53.50 ID:kXV5qe3k.net]
[]内では.や+はメタ文字ではなくただそのままの文字
-は文字の間にある場合だけ文字コードの範囲を表す
だから[-+0-9.]や[+0-9.-]なら望み通り

780 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 22:21:43.36 ID:Q9+hvKHV.net]
確かに、固定されて絶対変わらない保証があるなら仕様に従い-をそのまま書ける状況もあるけど
可読性なんかを考えたらエスケープしてやるのが確実だと思うわ

781 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 22:48:52.41 ID:kXV5qe3k.net]
そうだね
特に会社とか複数の人がメンテナンスに携わる環境ではむしろ積極的に\を付ける事になってたりする

782 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 11:12:00.03 ID:QDx4C0nH.net]
付けなくていい場所に付けるのは可読性を損なうしメンテナンス性も悪化する

783 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 11:39:01.26 ID:+GusP/54.net]
人それぞれなもんだね

784 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 16:15:54.83 ID:35cWfWGi.net]
他のは\付けないけど-だけは付けるようにしてる

785 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 22:35:52.86 ID:tRHi5MPl.net]
[\]ではなくて[\\]が正しいですか?

786 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 23:02:08.35 ID:+GusP/54.net]
[\]だと\は\]で消費されて閉じの]が無くなる

787 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 01:01:10.18 ID:FsDaEVc+.net]
\はエスケープのメタ文字なので、文字の\を表すには\を\でエスケープする必要がある
つまり\\



788 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 20:32:26.47 ID:6chkZTSI.net]
>>753
コロンでした済みません
:=(コロンイコール)で代入演算子までは分かったんですが
動作的には、正規表現|のようでした

条件A=:=条件B

789 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 04:27:16.34 ID:0bHamb0Z.net]
>>773
https://doc.perl6.org/routine/%3D%3A%3D#language_documentation_Operators
これじゃないの?
とりあえず、スレ違いだから他所で聞き直したほうがいい

790 名前:デフォルトの名無しさん [2016/06/26(日) 12:19:10.23 ID:0pF/e0UG.net]
今度は「Regrexit」、EU離脱を「後悔」
www.cnn.co.jp/tech/35084882.html

2016.06.26 Sun posted at 10:36 JST
ロンドン(CNN) 欧州連合(EU)からの離脱を問う国民投票で離脱派が勝利した英国で、
離脱に票を投じた有権者から、結果を受けて思い直したとの声も上がっている。
Britain(英国)とExit(退出)を組み合わせた造語「Brexit」に続いて、
ツイッターにはRegret(後悔)とExitを合わせた「Regrexit」というハッシュタグが登場した。

中部マンチェスターの有権者、アダムさんは英BBCとのインタビューで「私の票にあまり意味はないと思っていた。
どうせ残留だろうと予想していたから」「キャメロン首相の辞任表明には、正直言って仰天した」と不安をあらわにした。

離脱に票を入れたマンディさんという女性も24日、夕刊紙ロンドン・イブニング・スタンダードに
「今朝になって現実を知り、後悔し始めている。もう一度投票するチャンスがあれば意見を変えるのに」と語った。

イングランド南西部のコーンウォール州は国民投票で離脱を支持したが、
これまでEUから受け取っていた補助金が途絶えては困るとの懸念が浮上し、英政府に「保護」を求めている。
同州には10年以上前から、EUから年平均6000万ポンド(約84億円)が交付されていた。
州議会は政府に、これと同等の額の保証を求める構えだ。

再投票を求めるインターネット上の請願には25日午後の時点で200万人を超える署名が集まり、
議会での審議に必要とされる10万人の署名を上回った。
28日に下院の特別委員会が取り上げる見通しだという。

791 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 23:30:24.64 ID:I/qBn3J5.net]
>>774
コンテナ演算子?初めて聞きました
他で伺ってみたいと思います
ありがとうございました

792 名前:デフォルトの名無しさん mailto:sage [2016/06/27(月) 00:14:08.67 ID:ywseg4PN.net]
cv

793 名前:デフォルトの名無しさん [2016/06/29(水) 15:19:08.79 ID:jeflfaNJ.net]
bash 4.2.46
grep 2.20 です。
以下のように文字列中の大かっこにパターンマッチしたいんですが、
なぜマッチしないのかわかりません。

$string="[string"
echo $string | grep [\[\]]  <-マッチしない
echo $string | grep [\]\[]  <-[と]を逆にするとマッチする

794 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 16:19:59.57 ID:Hg0Bm2HH.net]
シェルでも、*, \ などは、メタ文字だから、
grep では、" " で囲まないと、grepよりも先に、シェルが解釈してしまうのかな?

grep "[\[\]]"

bash -ivx オプションを付けて、
grep [\[\]] が、どう展開されるのか見てみ

795 名前:デフォルトの名無しさん [2016/06/29(水) 16:46:07.08 ID:jeflfaNJ.net]
ダブルクオートでくくると、マッチしていた[\]\[]もマッチしなくなりました。
ivhをつけてみると、grep [[]]と grep [][] と表示されました。

正規表現の[] のなかで、「[」や「]」自身にマッチさせるのはなんか特殊
な方法がいるんでしょうか?

796 名前:デフォルトの名無しさん [2016/06/29(水) 16:50:20.39 ID:jeflfaNJ.net]
あ、マニュアルを見たら以下のように書いてありました。

リテラル ] を含めるには、この文字をリストの先頭に
置いてください

だから[[]]はだめで、[][]はOKなんですね。

797 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 17:08:24.12 ID:Hg0Bm2HH.net]
var re1 = /[\[\]]/;
var re2 = /[\]\[]/;

var str = "[str";
console.log(str.match(re1));
console.log(str.match(re2));

JavaScriptだと、どちらも、1文字目の、[ で一致する

名前欄に、764と入れて投稿して



798 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 17:13:00.14 ID:y/YEecXu.net]
お津

799 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 17:13:59.01 ID:y/YEecXu.net]
thx

800 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 17:23:12.29 ID:GdB71I0S.net]
bash使えんから想像なんだけど、
シェルで\がエスケープだとして、正規表現に\を渡すにはさらに\を\でエスケープすればどうかな?
[\\[\\]]

801 名前:764 [2016/06/29(水) 17:29:05.52 ID:jeflfaNJ.net]
ちなみに、grep のマニュアルには続きがあって以下だそうです。
初めて知りました。bashの正規表現でも同じ使い方じゃなくちゃダメでした。


----------------------------
リテラル ] を含めるには、この文字をリストの先頭に
置いてください。同様に、リテラル ^ を含めるには、この文字をリスト
の先頭以外に置いてください。リテラル - を含めるには、この文字をリ
ストの最後に置いてください。

802 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 17:39:05.32 ID:Hg0Bm2HH.net]
シェルスクリプトは落とし穴が多いから、難しいんだよ

Bashでは、! もエスケープ必要だし、

-(ハイフン)が文字列の最初に来ると、
オプションに解釈されるから、エスケープすらできないし

プログラミング言語の方が、文字列でエスケープする文字が少ないから、簡単

803 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 17:42:13.89 ID:Hg0Bm2HH.net]
[ ] 内では、[, ], ^, - の4つは、特殊な意味を持つから、要注意!

804 名前:デフォルトの名無しさん [2016/06/29(水) 17:48:33.01 ID:jeflfaNJ.net]
\でエスケープすればOKと思ってたのが、そういうもんでもないんですね。
理由は分かりませんが。。
ご協力ありがとうございました。

805 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 18:07:51.08 ID:63bvN4qa.net]
シェルが絡むと厄介なんだね
勉強になった

806 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 18:13:44.58 ID:lTepsFDI.net]
um

807 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 19:12:33.05 ID:xPFVh+mM.net]
KO



808 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 19:24:59.88 ID:y0UpPgVv.net]
grep等では文字クラス内でのバックスラッシュは「エスケープ」の意味を持たない

> しかし、egrepのほとんどのバージョンでは、文字クラス内のバックスラッシュは特別な意味を
> 持たず、そのため、文字クラス内では “エスケープサービス” を提供しない。
詳説正規表現
https://books.google.co.jp/books?id=RJFJ2I-thlsC&lpg=PA31&q=%22%E6%96%87%E5%AD%97%E3%82%AF%E3%83%A9%E3%82%B9%E5%86%85%E3%81%AE%E3%83%90%E3%83%83%E3%82%AF%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%22

> キャラクタクラスの中では多くのメタキャラクタがその意味を失います。特に、伝統的な
> egrepでは、[]の中では\によるエスケープも効きません(\自体もその特殊な意味を失ってしま
> う)。そういった場合に]や^、-といった[]内で特殊な意味を持つキャラクタをクラスに含めた
> いときには []^-]のように記述します。つまり、^は[の直後以外に、]は[の直後(補集合を指
> 定しているときには^の直後)に置き、-はリストの最後に置くというやり方を使います。
正規表現メモ
www.kt.rim.or.jp/~kbk/regex/regex.html#CCLASS

809 名前:デフォルトの名無しさん [2016/07/08(金) 18:50:11.04 ID:ToKmZmSe.net]
よろしくお願いします。
●Regular Expressionの使用環境
Excel 2013 VBA(VBScript.RegExp)

●検索か置換か?
置換

●説明
数字端のスペースを含まずに後方参照したい

●対象データ
1 2 3 4 5 ABC
1 2 3 4 5ABC

●希望する結果
1 2 3 4 5
^^^^^^^^^
1 2 3 4 5
^^^^^^^^^

810 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 19:17:00.63 ID:dMXcsc44.net]
z

811 名前:デフォルトの名無しさん [2016/07/08(金) 19:20:55.77 ID:EpqqXInU.net]
>>794
すみません。

●対象データ
1 2 3 4 5 ABC
1 2 3 4 5ABC
12345 ABC
12345ABC

●希望する結果
1 2 3 4 5
^^^^^^^^^
1 2 3 4 5
^^^^^^^^^
12345
^^^^^
12345
^^^^^

でお願いします。

812 名前:デフォルトの名無しさん mailto:sage [2016/07/08(金) 20:17:02.45 ID:WS5P2nLb.net]
おお

813 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 00:09:33.22 ID:603N+6Q0.net]
>>796
.Replace(" ?ABC$", "")

814 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 13:30:44.81 ID:XZ2f4NeC.net]
>>796
([0-9]( ?[0-9])*)

815 名前:デフォルトの名無しさん mailto:sage [2016/07/09(土) 14:15:53.95 ID:eZEsospS.net]
横d

816 名前:デフォルトの名無しさん [2016/07/11(月) 17:21:37.38 ID:NUOClU+i.net]
>>798-799
ありがとうございました
先読みで(.*)(?=\s*)だとマッチせず困ってました

817 名前:デフォルトの名無しさん [2016/08/09(火) 17:00:14.44 ID:xm47cYIn.net]
XX-12,53,88-35,27,95-57,11,71-...
みたいな文字列があって-数字,数字,数字-の部分は複数回続くんだけど
XXの部分と数字の部分をキャプチャする正規表現って一つで書ける?
環境は何でもいい



818 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 18:35:54.95 ID:n5pitoha.net]
(..\-\d\d,\d\d,*)*

819 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 13:56:01.53 ID:QZxl2haI.net]
これは嫌なのか?
(XX)|(\d+)

820 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 13:12:53.43 ID:XDK3PVFI.net]
●Regular Expressionの使用環境
Mery 2.5.2

●検索か置換か?
置換

●説明
カッコ内にカッコのある1個目のカッコのみを削除したい

●対象データ
(あああ(いいい)ううう)えええ(おおお)

●希望する結果
えええ(おおお)

821 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 13:59:38.30 ID:MLERxFDs.net]
例文ならこれでいけるが汎用性はどうかな?
\(.*?\(.*?\).*?\)

822 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 14:11:34.85 ID:XDK3PVFI.net]
>>806
上手くいきました。どうもありがとうございました。

ただ
(あああ(いいい)ううう)えええ(おおお(かかか)ききき)
となっていると全文がマッチしてしまいました

823 名前:sage [2016/08/23(火) 15:21:16.40 ID:R3EL7dRR.net]
¥([^()]*¥([^()]*¥)[^()]*¥)

824 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 16:13:26.40 ID:XDK3PVFI.net]
>>808
ありがとうございます。
すべてのカッコ内カッコが検索されますが、

(あああ(いいい)ううう)えええ(おおお(かかか)ききき)
の場合でも、1個目のカッコ内カッコのあるカッコだけを検索して

えええ(おおお(かかか)ききき) とできれば良いのですが

825 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 17:00:06.50 ID:GmZX4o5v.net]
>>809
^[^(]*\([^()]*\([^()]*\)[^()]*\)

826 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 21:09:09.20 ID:XDK3PVFI.net]
>>810
ありがとうございます。
度々申し訳ありませんが

あああ(あああ(いいい)ううう)えええ(おおお(かかか)ききき)くくく
このようなケースでも1個目のカッコ内カッコのあるカッコだけを検索して

あああえええ(おおお(かかか)ききき)くくく とできればおそらくこれで完璧だと思われます。

827 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 00:00:08.98 ID:LDyc20HB.net]
(?<x>\(([^()]++|\g<x>)*\))(.*)
$3



828 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 07:10:08.38 ID:6D91+vLT.net]
>>812
どうもありがとうございました。完璧です。
御回答いただいた皆様に感謝致します。

829 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 13:10:57.10 ID:Rn6iYoWl.net]
>812
これすごいな。入れ子になっているのか
こういうの書ける人尊敬するわ

830 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 13:13:45.30 ID:HM4zCXGG.net]
d

831 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 18:09:17.02 ID:mGpqCU5h.net]
>>812
なんか分からんが凄いな

832 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 18:17:40.95 ID:JVXWM8hM.net]
ほんとに

833 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 01:44:01.50 ID:47oHd6Or.net]
>>812
わかろうとする気にならないほどだな

834 名前:800 mailto:sage [2016/08/25(木) 08:09:27.32 ID:RUhmm4s5.net]
>>812
あ、でもこれって、

あああ(いいい)ううう(えええ(おおお)かかか)ききき(くくく)けけけ

のように、最初に出てくる括弧が「カッコ内カッコのあるカッコ」
ではない場合に

あああううう(えええ(おおお)かかか)ききき(くくく)けけけ

となってしまう気が…
この場合は

あああ(いいい)うううききき(くくく)けけけ

となってほしいというのが>>805さんの要望だと僕には読めたの
ですが、違うのかな
いずれにしてもすごい正規表現だね。すごい

835 名前:800 mailto:sage [2016/08/25(木) 09:27:55.87 ID:RUhmm4s5.net]
>>808さんのは、単に検索すると「すべてのカッコ内カッコが検索」されるけれど、

\([^()]*\([^()]*\)[^()]*\)(.*)$

と書き換えて、置換後を$1にするってのはどう?
これなら、最初に出てくる括弧の中に括弧がない場合でも
上手くいくと思いますが、勘違いしていたらごめんなさい

836 名前:800 mailto:sage [2016/08/25(木) 09:59:14.17 ID:RUhmm4s5.net]
連投すみません。楽しくなっちゃって

>>812さんのは、括弧が3重以上でも上手くいくというのがすごいところ
ですね。
なので、最初に出てくるカッコが「カッコ内カッコのあるカッコ」
ではない場合(=1重カッコ)にヒットしないように書き換えて、

\([^()]+(?<x>\(([^()]++|\g<x>)*\))[^()]+\)(.*)
$3

これでどうだ!

837 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 12:01:47.6 ]
[ここ壊れてます]



838 名前:1 ID:v6sPu6lS.net mailto: そもそも <x> と言うのは何ですか? []
[ここ壊れてます]

839 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 12:17:56.51 ID:mC+7hpz+.net]
名前

840 名前:sage [2016/08/25(木) 13:10:27.44 ID:AMWIH4jj.net]
“田中哲スペシャル”でぐぐれ

841 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 13:14:05.03 ID:LnEFg7Mi.net]
なんだ

842 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 13:47:22.01 ID:RUhmm4s5.net]
(AA(BB(CC))DD)
のような多重カッコを「x」という名前で定義しておいて、
「(」と「)」の間に入っているものは
・「(」と「)」以外の文字の並び
もしくは
・x(=多重カッコ)
と再帰的に表現しているってことですよね

843 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 14:28:32.37 ID:56YmsHfW.net]
>>824
名前から釣りだと思いつつggったらめっちゃ為になった

844 名前:デフォルトの名無しさん [2016/09/09(金) 15:51:38.37 ID:wCNlt+Gc.net]
●Regular Expressionの使用環境
Javascript,PHP,Perl,Python

●検索か置換か?
検索

●聞きたいこと
この正規表現は何にマッチするのか

●正規表現
([^*]*)

845 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 16:06:05.58 ID:Ttxk6y+B.net]
>>828
「アスタリスク以外が0個以上連続」じゃないの

846 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 16:14:03.28 ID:Wsi0UfEI.net]
そうなのか

847 名前:デフォルトの名無しさん [2016/09/09(金) 16:15:36.16 ID:Wsi0UfEI.net]
なるほど



848 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 14:39:32.69 ID:EFchVXk6.net]
学校の宿題は自分でやれよw

849 名前:デフォルトの名無しさん [2016/09/25(日) 08:47:14.21 ID:UOma ]
[ここ壊れてます]

850 名前:1c6b.net mailto: よろしくお願いします。
●Regular Expressionの使用環境
vs2015 VB.net

●検索か置換か?
検索

●説明
nameを取り出したい
nameブロックはregと;に必ず囲まれている。
Dim ptn = New Regex("reg\s+(.*);")
これでネームブロックは取り出せる。2回に分ければnameを取り出すことは可能だが1回の正規表現で
取り出すことは可能だろうか?
いろいろやってみたがうまくいかない。

●対象データ
reg [7:0] name1, name2, [16:0] name3;


●希望する結果
name1
name2
name3
[]
[ここ壊れてます]

851 名前:デフォルトの名無しさん [2016/09/25(日) 08:52:20.11 ID:UOma1c6b.net]
対象データ追加です
●対象データ
reg [7:0] name1;
reg [7:0] name1, name2;
reg [7:0] name1, name2, [16:0] name3;


●希望する結果
name1

name1
name2

name1
name2
name3

852 名前:デフォルトの名無しさん mailto:sage [2016/09/25(日) 09:18:17.73 ID:DeKyBBx0.net]
んm

853 名前:デフォルトの名無しさん mailto:sage [2016/09/25(日) 09:31:36.02 ID:hrPU7kVw.net]
複数列の1行を、1列の複数行に変換してから、処理すれば簡単

reg [7:0] name1, name2, [16:0] name3;

reg
[7:0]
name1,
name2,
[16:0]
name3;

854 名前:デフォルトの名無しさん [2016/09/25(日) 10:37:30.22 ID:UOma1c6b.net]
正規表現でどうぞ

855 名前:デフォルトの名無しさん mailto:sage [2016/09/25(日) 11:14:40.83 ID:dhuBOAuX.net]
ほい

856 名前:デフォルトの名無しさん mailto:sage [2016/09/25(日) 11:16:44.34 ID:dhuBOAuX.net]


857 名前:デフォルトの名無しさん [2016/09/25(日) 11:32:22.86 ID:UOma1c6b.net]
ほい。わかった。
できんのか思ってたが、なんか1回の記述でできそうやな。まあお前らには無理や
と思うが、俺がもうちょっと考えたらできるわ。



858 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 21:48:53.42 ID:cGXPnVhl.net]
Dim ptn = New Regex(
" (?<=^reg\s+.*) " & vbCrLf &
" ( " & vbCrLf &
" \w+ " & vbCrLf &
" (?= " & vbCrLf &
" ,\s+ " & vbCrLf &
" | ; " & vbCrLf &
" ) " & vbCrLf &
" ) " & vbCrLf &
" (?=.*;$) " & vbCrLf,
RegexOptions.IgnorePatternWhitespace)

Dim inputs As String() = {
"reg [7:0] name1;",
"reg [7:0] name1, name2;",
"reg [7:0] name1, name2, [16:0] name3;"
}
For Each input As String In inputs
Console.WriteLine("input=" & input)
Dim match = ptn.Match(input)
While match.Success
Console.WriteLine("match=" & match.Captures(0).Value)
match = match.NextMatch
End While
Next

859 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 01:57:46.08 ID:Gm/yyr2U.net]
サイトがちこっと模様替えしたね
https://regex101.com/

860 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 12:15:35.80 ID:AdTl/Wc+.net]
JavaScriptでreplaceをする為に
/(パターン1)(パターン2)|(パターン3)(パターン4)/
こういうパターンを書いた場合、OR記号 | で連結しているので、キャプチャ結果が
$1, $2
になると期待したのですが、そうならないのですか?
実際にやってみると
$1, $2 と $3, $4
に入るようなのです。

861 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 12:44:39.82 ID:TjQcy2Bo.net]
それをやりたいならこうじゃ
/(パターン1|パターン2)(パターン3|パターン4)/

862 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 13:10:27.91 ID:AdTl/Wc+.net]
>>844
なるほど。
/(パターン1|パターン3)(パターン2|パターン4)/
ですね。

でもそれだと
期待している条件は
(パターン1)(パターン2)か
(パターン3)(パターン4)なのに、
それ以外の組み合わせ
(パターン1)(パターン4)
(パターン3)(パターン2)
の場合にもマッチしてしまうと思うのですが。

863 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 20:53:49.07 ID:aAqIiVw5.net]
括弧の数だけ後方参照は返るのだから>>843は当然の結果だと思うが
具体的に返って欲しい結果は何?
全てのパターンを書き出してみ、>>843の意図と見る側の解釈が一致しないと話が始まらない

864 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 21:50:09.68 ID:OR93Coso.net]
多分
/((?:パターン1)(?:パターン2))|((?:パターン3)(?:パターン4))/
ってことかな?

865 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 22:17:35.20 ID:twuqKzoy.net]
u

866 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 21:15:18.57 ID:P0MVHdnM.net]
正規表現って言葉がかたすぎる
もっとみんなが興味をもつ言い方に変えないの?

867 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 21:49:53.51 ID:Ry/2H8uD.net]
興味津々だよ



868 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 12:42:59.30 ID:kCrlwcjM.net]
>>849
固いというより意味が通じ難いと思う

869 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 13:02:28.50 ID:AIOqBHAK.net]
>>849
理系にネーミングセンスを求めてはならない
その他と区別できるという条件さえ満たす名であればなんでもいい人種だから
名称自体を正規表現で表さなかったことに感謝している

870 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 13:40:38.43 ID:kCrlwcjM.net]
正規表現って訳さいしょに使ったの石田晴久だっけ

871 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 14:16:05.47 ID:AabNbAoI.net]
これ以上ないくらい直訳なんだが

872 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 20:30:42.04 ID:2CwQi8oD.net]
せいきがかたくてきょうみしんしん
なるほど

873 名前:デフォルトの名無しさん [2016/12/21(水) 21:16:28.47 ID:8i27l//u.net]
d

874 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 21:17:12.71 ID:e5558qWf.net]
なんちゃって照合
自在照合

875 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 21:39:55.58 ID:cAK1T9+M.net]
置換とか挿入とかが付いてまわるから、
この組み合わせどーにかできなかったのかよ
とはよく思うが他の言い回しも思いつかない
会話してるだけでいつかセクハラでほんとに訴えられる

876 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 21:50:37.70 ID:nmy+aY6o.net]
数学用語でregularと言ったら、正則と訳することが多いけどね

877 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 22:14:58.43 ID:l+YTvMLn.net]
うん



878 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 22:46:11.63 ID:AxC8I5w6.net]
正規表現、字で見るとなんともおもわないが
音で聞くと、・・・・
正規表現のこと知らない女性に訴えられるね

879 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 20:44:35.19 ID:TsoHImGD.net]
正規雇用の正規だよと言えば理解した気になってもらえる。

880 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 20:52:11.82 ID:mxTJlKmu.net]
非正規の彼女だったら、そんなこと口が裂けたって言えないな

881 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 16:39:44.11 ID:0uYWbX0H.net]
>>853
呼び捨てすんなよ
先生と呼べよ

882 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 16:42:23.96 ID:8EM69YXY.net]
石田のK&R翻訳書は糞で有名

883 名前:デフォルトの名無しさん mailto:sage [2016/12/25(日) 11:45:12.71 ID:QywZQROL.net]
ユーザー登録制のサイトで、勝手な名前を登録出来ると例えば
Admin、管理者、マネージャ、、、
など、いかにも一般ユーザーではないような名前を付ける人も出てきます。
そういう名前を登録出来ないようにしたいのですが、自分で正規表現でそういうのを排除しようと
思ったのですが、そういう目的に使えるような便利なライブラリなどありませんか?
要するに排除する単語の選定だけの問題なのですが、既に誰か作っていないかなあと思って。
アダルト系、人種差別系の名前も排除したいので、考えれば結構範囲が広いんです。

884 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 14:02:43.13 ID:9ynixZS2.net]
>>866
どんなものにも得手不得手ってものがあるわけで
なぜその処理をするのに正規表現が選択肢になるのか意味不明

885 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 14:35:26.36 ID:xrzl8aBc.net]
まあブラックリスト、ホワイトリストには大体正規表現が書けるようにはなってる
そういうリストを自分で作るんじゃなくて欲しいんなら探すしかない

886 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 16:02:11.15 ID:hI/o5Uh3.net]
>>867
パターンマッチングの典型例だろ。
意味不明と言う意味が不明

887 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 16:14:01.50 ID:Vdczj+/E.net]
u



888 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 18:47:29.33 ID:4mpySA7a.net]
出来の良い辞書があれば済みそうな話に見えるけど、そうでもないのか

889 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 19:28:33.83 ID:OB8e5g5W.net]
日本語を許可してる時点で無駄じゃね
チンコを意味する言葉だけで辞書1ページ埋まるくらいあるし
全部NGに出来たとしても記号混ぜられたらそれまでだろ
報告されたら対処するくらいでいいと思うが

890 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 06:19:32.79 ID:+BGeVry5.net]
のどちんこ

891 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 12:52:22.48 ID:kFL7wfb2.net]
ぱちんかす

892 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 13:09:32.83 ID:wvS2FZtE.net]
既存のブラックリストがあれば欲しいという話ならまだ分からなくもないけど
ブラックリストでパターンマッチングさせて弾く処理なんてどんな言語だろうが初歩中の初歩の処理だろ
なぜ正規表現のスレで>>866を質問しようと思ったのだろう

893 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 19:56:57.61 ID:2Pbjmvkx.net]
●Regular Expressionの使用環境
PHP

●検索か置換か?
検索

●説明
preg_splitを使ってカンマ"," での文字列分割
その際カンマの前後の半角スペースを無視したい

●対象データ
値1, 値2, 値3,値4 , 値5

●希望する結果
値1
値2
値3
値4
値5

よろしくお願いします

894 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 20:52:56.95 ID:WcpJxD6e.net]
エスケープだの引用符だの言い出さないなら、 / *, */ ←顔文字みたい

895 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 21:10:19.67 ID:2Pbjmvkx.net]
>>877
ありがとうございます

896 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 21:15:01.34 ID:jGOjX1NN.net]
 ^ω^)

897 名前:デフォルトの名無しさん [2016/12/30(金) 21:48:44.19 ID:/ZkHAa1O.net]
bregonig.dll Ver.4.00
k-takata.o.oo7.jp/mysoft/bregonig.html



898 名前:デフォルトの名無しさん [2016/12/31(土) 05:55:37.66 ID:CmyPhKPF.net]
文字化けを発見しやすくするためにもPOSIX正規表現にasciiクラスを正式採用してもらいたい

899 名前:デフォルトの名無しさん [2017/01/06(金) 20:46:01.53 ID:v+2zhO4e.net]
よろしくお願いします。

●Regular Expressionの使用環境
mi(ミミカキエディット www.mimikaki.net/)

●検索か置換か?
置換

●説明
英単語のリストがあるのですが、各単語の最初の文字は残して、
残りを全て全角スペースに置換したい。

●対象データ
ABCA
BCAA
CABA

●希望する結果
A□□□
B□□□
C□□□

900 名前:デフォルトの名無しさん mailto:sage [2017/01/06(金) 23:01:40.92 ID:rJ39SB5o.net]
>>882
(?<=.).
そのエディタ知らないけど肯定後読みでできないかな

901 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 00:03:11.91 ID:FuDWh40R.net]
support.mimikaki.net/mi/help/regexp.htm ヘルプ見たら後読みはなさそうだ
・単に行頭だけ残す
(?!^).→全角空白
・連続したアルファベットの先頭だけ残す
(?!\b[A-Za-z])[A-Za-z]→全角空白

902 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 01:32:30.47 ID:Rh9gPNyY.net]
\B.→全角空白

903 名前:デフォルトの名無しさん [2017/01/07(土) 02:13:58.12 ID:IrIkzzkt.net]
1.矩形選択で全行の1文字目切り取りって待避
2.[A-Z]を全角空白に置換
3. 1.で切り取ったものを矩形ペースト
でいけたけど全角空白の表示がわからんのねこれ

904 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 07:55:08.29 ID:9O+kjQ8i.net]
そもそも正規表現で、n個のAに置換するとか、あらかじめ数が分からないのに、出来るのか?
AA, AAA に置換するのは出来るけど

普通に、ファイルを読んで、1文字ずつ変換した方が良さそう

905 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 08:48:09.01 ID:2RoNSSAN.net]
>>887
>>883-885 のパターン(一文字にマッチ)で s///g の g に該当する指定(全て置換、等)

906 名前:をすればいいのでは?

つか \B いいな、vimにもホスィ、\<\@! とか書けるけど
[]
[ここ壊れてます]

907 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 15:30:40.04 ID:B2JCMQMI.net]
>>887
n個をn個に置換するという表現は出来ないからそうでない表現を考える(勿論プログラミングではコールバックでどうとでもなるけども)
今回は先頭の1文字に続くn文字をn文字で置換する, から非単語境界に続く全ての1文字を1文字で置換する, に置き換えて考えればよい



908 名前:デフォルトの名無しさん mailto:sage [2017/01/10(火) 02:26:03.25 ID:lqVFUn0Z.net]
javascriptのソースで遭遇したんですが、

[ -~]

ってどういう正規表現なんですか?英文字とマッチしてるようなんですが・・・

909 名前:デフォルトの名無しさん mailto:sage [2017/01/10(火) 02:38:26.37 ID:fP39RQYT.net]
>>890
ASCIIコードで書けば [\x20-\x7e] で印字可能文字の全体
\x00-\x1f, \x7fは全て制御文字

910 名前:デフォルトの名無しさん mailto:sage [2017/01/10(火) 03:07:46.12 ID:lqVFUn0Z.net]
>>891
なるほど!そういう意味だったんですね…何かの特殊文字化と思って???状態でした。
ありがとうございます

911 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 19:51:15.52 ID:GvJtwLGJ.net]
>>883-889
ありがとうございます。
¥B.→全角空白でいけました!

912 名前:デフォルトの名無しさん mailto:sage [2017/01/17(火) 01:06:22.60 ID:TKHULUbB.net]
gawkは、/[a-z]/で英大文字もマッチする
小文字だけのチェックなどしないから長い間気がつかなかった

ぐぐったら有名なバグだった

913 名前:デフォルトの名無しさん mailto:sage [2017/01/17(火) 14:11:55.18 ID:QWXHES32.net]
>>894
マジ?
普通に

$ echo "HELLO¥nhello" | gawk '/[a-z]/'
hello

になったんだが、バージョン違い?(4.1.1です)

914 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 00:05:35.56 ID:b8uVoaAX.net]
>>895
ごめん、バージョン3. です
4. は直っているらしいです、まだ使っていませんが

915 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 12:45:38.22 ID:Igfwm5uK.net]
●Regular Expressionの使用環境
Java

●検索か置換か?
検索

●説明
最短の指定文字列の間の文字を複数条件で検索したい
a(.*?)b
c(.*?)d
e(.*?)f
これを1つにしたいんだが、
a(.*?)b|c(.*?)d|e(.*?)f 一致せず
(a|c|e)(.*?)(b|d|f) 一致せず

●対象データ
aあいうえおb
cかきくけこd
eさしすせそf

●希望する結果
あいうえお
かきくけこ
さしすせそ

おねがいします

916 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 13:02:42.00 ID:Igfwm5uK.net]
補足
(a|c|e)(.*?)(b|d|f) 一致せず
これをやったのは最初にaにマッチした時は必ず次に最初にマッチするのはbだからです。cにマッチしたら次にマッチするのはd、eにマッチしたら次にマッチするのはf
対ではない他の文字列が先に出てくることはありません

917 名前:デフォルトの名無しさん [2017/01/18(水) 13:08:13.45 ID:2zcCu4Ky.net]
[ace](.*?)[bdf]



918 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 13:15:05.93 ID:Igfwm5uK.net]
>>899
ありがとうございます
説明不足すいませんabcdefのやつは実際は1文字じゃないんです

919 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 13:17:28.66 ID:lqRpqFwx.net]
>>898
たとえば、aあいうえおc にはマッチしてほしくないってこと?

920 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 13:20:33.86 ID:aCeYQIzy.net]
(?<=a).*?(?=b)|(?<=c).*?(?=d)|(?<=e).*?(?=f)

921 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 13:20:35.48 ID:lqRpqFwx.net]
違った。ええとつまり、aで始まればbで終わり、cで始まればdで終わる、ってこと?

922 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 13:26:42.18 ID:Igfwm5uK.net]
>>903
そうです!

923 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 13:30:40.10 ID:U5PxsZIV.net]
(a(.*?)b)|(c(.*?)d)|(e(.*?)f)
だと駄目?

924 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 13:32:34.45 ID:aCeYQIzy.net]
>>905
キャプチャの番号がズレるでしょうよ

925 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 13:43:13.11 ID:2zcCu4Ky.net]
ruby 2.2.1でa(.*?)b|c(.*?)d|e(.*?)fでマッチするけど?

926 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 13:46:16.22 ID:aCeYQIzy.net]
並列にキャプチャするとキャプチャ結果引っ張ってくるの手間じゃない?

927 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 15:07:05.66 ID:Igfwm5uK.net]
>>902
試してみました
java.util.regex.PatternSyntaxException: Look-behind pattern matches must have a bounded maximum length near index 95:
と返ってきてしまいました。どういうこと?



928 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 15:31:10.11 ID:1DV8OvrA.net]
aやらbやらに可変長パターン用いてるんでないの?
実際に使用しているパターンを晒さないと前に進まないと思うよ

929 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 16:15:59.60 ID:Igfwm5uK.net]
a <div class=\"number\">
b </div><div class=\"name\">
c <div class=\"date\">.*?\\)
d \\.
e <div class=\"message\">
f </div></div>
です
可変長のやつを中で使ってはダメなのか!

930 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 17:17:59.83 ID:ZI2HwePN.net]
>>911
cは括弧の対応が取れてないと思うんだがコピーミス?
可変長がダメなのは>>902の奴で、>>897の最初の奴で良さそうに思えるんだが
ただ、.*?だともしもデータの対応が取れてなかったらごそっとキャプチャしちゃう恐れがあるし、その時はダンマリか猛烈に遅くなる可能性もある

931 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 17:43:31.04 ID:HRpr9Zj8.net]
可変長戻り読みはコストが大きいから無理(Javaは可能だが上限あり)
面倒だけどキャプチャ括弧で頑張るしかない

で, そのパターンから見るにHTMLなんだろうけど, それ正規表現じゃなきゃいけませんかってとりあえず聞いておく
HTMLパーサライブラリなんて世にいくらでもありますよ, と

932 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 18:13:58.95 ID:clhGKXZp.net]
>HTMLパーサライブラリなんて世にいくらでもあります
まずはそこだよなw

933 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 21:24:14.27 ID:Igfwm5uK.net]
>>912
コピーミスではないんですが間違ってましたか!

とりあえずエスケープもちゃんととって答えてくれたやり方やってみましたが正しく取れませんでした
自分の環境のせいかもしれません
キャプチャ括弧というのでやってみようと思います
何度も限定的な同じことを繰り返すから正規表現のほうが軽いかなと思ったんですけどhtmlパーサーってやつの方がいいみたいですね。それも検討してみます
どうもありがとうございました!

934 名前:デフォルトの名無しさん mailto:sage [2017/01/28(土) 18:23:15.25 ID:DLwo47M5.net]
秀丸で
2009年1月
2011年3月
2011年11月
2013年12月
のような行がたくさんあるのですが
2009年 1月
2011年 3月
2011年11月
2013年12月
のようにしたいのですが
年.月
で1-9月が検索できることは分かったのですが
置換先にどう書いたらよいのでしょうか

935 名前:デフォルトの名無しさん mailto:sage [2017/01/28(土) 18:30:20.93 ID:XnHJw37P.net]
年(\d)月
年 $1月
でどうかな?

936 名前:デフォルトの名無しさん mailto:sage [2017/01/28(土) 18:41:22.57 ID:DLwo47M5.net]
>>917
検索(S): 年(\d)月
置換(E): 年 $1月
としたら結果は
2009年 $1月
2011年 $1月
2011年11月
2013年12月
となってしまいました。正規表現(R)のチェックボックスは入れています。
検索で出てきたサルでも分かる正規表現入門とMIFESサンプル集のページを見ましたが
置換用メタ文字というのが分からなくて困っているんですね私は、たぶん。

937 名前:デフォルトの名無しさん mailto:sage [2017/01/28(土) 19:16:27.79 ID:yUzAOYuJ.net]
秀丸持ってないから分からんけど\1とか



938 名前:デフォルトの名無しさん mailto:sage [2017/01/28(土) 20:04:13.36 ID:DLwo47M5.net]
Windows PowerShellだとsedあるのかなとか思いましたが、無かったorz
秀丸スレで聞いてみます

939 名前:デフォルトの名無しさん mailto:sage [2017/01/28(土) 20:34:54.41 ID:DLwo47M5.net]
>>917
>>919
レスありがとうございます
秀丸スレで教えてもらうことができました

検索(S): 年([0-9])月
置換(E): 年 \1月

940 名前:デフォルトの名無しさん mailto:sage [2017/01/29(日) 00:11:31.24 ID:ahYjitv7.net]
\1 は検索文字内で使うものであって、置換の方は $1 を使うのが自然なんだけどな
秀丸の実装が腐ってるのか

941 名前:デフォルトの名無しさん mailto:sage [2017/01/29(日) 00:14:49.25 ID:pBh4CFEL.net]
うっm

942 名前:デフォルトの名無しさん mailto:sage [2017/01/29(日) 01:17:12.68 ID:q/JB8S+S.net]
>>922
同様のsedという例があるからなぁ・・・・
そもPOSIX標準で置換に関して規格ってあるんだっけ?

まぁPCREでも.NETの正規表現でも使った方がいいんじゃねとは思う
秀丸自体最早古臭いけど

943 名前:デフォルトの名無しさん mailto:sage [2017/01/29(日) 04:19:46.44 ID:9/7795aT.net]
秀丸はbregonig.dllを使えるので正規表現の機能的には十分だし
他のエディタではあんまりない機能
「正規表現でのインクリメンタルサーチ」
ができるので重宝してる

944 名前:デフォルトの名無しさん mailto:sage [2017/01/29(日) 06:22:34.74 ID:ahYjitv7.net]
Perl では $1 を推奨してるだけで規格自体は無いかなぁ
でも bregonig.dll で $1 が使えるのに、置換に使えないっていうのはおかしい

945 名前:デフォルトの名無しさん mailto:sage [2017/01/29(日) 07:31:12.39 ID:q/JB8S+S.net]
>>926
デフォルトではbregonigじゃなくてHmJreなんだろ
何も不思議じゃない

946 名前:デフォルトの名無しさん mailto:sage [2017/01/29(日) 11:54:45.57 ID:Gjda/nA+.net]
Windowsのエディタっていま何が主流なんですか?

947 名前:デフォルトの名無しさん mailto:sage [2017/01/29(日) 12:00:04.87 ID:CRRLjGuc.net]
すごいもんeditしようとしてるな



948 名前:デフォルトの名無しさん mailto:sage [2017/01/29(日) 12:13:54.05 ID:Gjda/nA+.net]
えっ!?(なんでワカタの)

949 名前:デフォルトの名無しさん mailto:sage [2017/02/04(土) 15:35:39.90 ID:e9aNESBj.net]
>>928
禿丸

950 名前:デフォルトの名無しさん [2017/02/17(金) 00:43:55.47 ID:aR5hX4hL.net]
$1とか\1とか効いたり効かんかったり、イライラするのは何故?←訊くな

951 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 16:30:36.89 ID:D++FG3XO.net]
●Regular Expressionの使用環境
VB.NET(回答はサクラエディタでも可)

●検索か置換か?
置換

●説明
巨大な配列に代入を行っているプログラムソースの途中に1行追加して
それ以降の要素番号を1ずつずらしたいんですが、
ずらす部分を正規表現置換でやることは可能でしょうか?

●対象データ
hogehoge(0) = "AAA"
hogehoge(1) = "BBB"
hogehoge(2) = "CCC"
hogehoge(3) = "DDD"
hogehoge(4) = "EEE"

●希望する結果
hogehoge(0) = "AAA"
hogehoge(1) = "BBB"
hogehoge(2) = "XXX" ←手入力でこの行を新たに追加
hogehoge(3) = "CCC" ←正規表現置換でhogehogeの要素番号を+1
hogehoge(4) = "DDD" ←正規表現置換でhogehogeの要素番号を+1
hogehoge(5) = "EEE" ←正規表現置換でhogehogeの要素番号を+1


※ちなみに実際にはhogehogeの要素番号は数千ぐらいまであって
「=」の右側の式もこんなに単純ではないです。

952 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 16:41:33.09 ID:D++FG3XO.net]
↑あまり過去ログ読んでなくて、もし既出だったら教えて下さい...

953 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 16:54:47.42 ID:Hh/GX1rY.net]
正規表現で足し算出来るのかな?
でもね、こう言う場合は
Int n=0
hogehoge(n)="AAA";n=n+1;
hogehoge(n)="BBB";n=n+1;
とかにしておくと、いいよ。

954 名前:919 mailto:sage [2017/02/20(月) 17:11:19.64 ID:D++FG3XO.net]
>>935
すみません、例を単純化しすぎました。
実際には

hogehoge(0) = "AAA"
hogehoge(0) = hogehoge(0) & "XYZ"

みたいに同じ要素が複数回出現するので「hogehoge」にヒットさせて
直後の()内の数字を+1するしかないかなと思っています。

955 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 17:21:36.65 ID:aGrUDuyU.net]
例えば配列要素2を追加する場合
hogehoge(1)=hogehoge(1)+"AAA"
→ hogehoge(1)=hogehoge(1)+"AAA" //そのまま
hogehoge(3)=hogehoge(1)+"AAA"
→ hogehoge(4)=hogehoge(1)+"AAA" //左辺のみ+1する
hogehoge(3)=hogehoge(3)+"AAA"
→ hogehoge(4)=hogehoge(4)+"AAA" //左辺右辺それぞれ+1する
ってことか?
VB.NETやサクラエディタのマクロで組めば可能だろうが、
VB.NETやサクラエディタのスレで聞け

956 名前:922 mailto:sage [2017/02/20(月) 17:27:47.63 ID:D++FG3XO.net]
>>937
1つの行内ではその要素番号しか出てこないです。
あと要素番号の戻り、例えば

hogehoge(3) = "DDD"
hogehoge(2) = hogehoge(2) & "EEE"

みたいにある要素の処理の次にそれより若い番号の要素の処理が来ることもありません。

でも確かに正規表現の範疇ではなかったですね。
すみません。去ります。

957 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 17:28:24.78 ID:Hh/GX1rY.net]
>>936
その足し算処理の
vb.netプログラム書けばいいんじゃないか?
数千行をファイルに書いておいて
配列に読み込んで
正規表現で(数字)見つけて1足す
どうかな?
3分あれば出来る。



958 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 00:06:28.28 ID:DnJwQ0KY.net]
実際に要素番号を+1する必要あるの?
↓こういう置換でいいんじゃね?
hogehoge(2+1) = "CCC"
hogehoge(3+1) = "DDD"
hogehoge(4+1) = "EEE"

959 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 03:30:05.49 ID:BY3mJNCy.net]
配列に数千行も代入文が続くなんて
どう見てもステップ数稼ぎででかくしたとしか思えん
ステップ数あたりでお金を払ってだらそういうこともされるだろうよ

960 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 05:37:02.05 ID:Mc+Bkh/z.net]
全然スレチなのであまり詳しくは書かないけど
Excel使ってそういうコード書くのは何回かやったことがある
数値をインクリメンタルさせる部分はExcelの機能に頼って
セルの値を文字列連結させてコードに仕立て上げる

961 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 09:27:34.14 ID:bUsqhz7M.net]
>手入力でこの行を新たに追加
ってのが、エディタ内でやるのか、コマンドラインで挿入コマンドを打つのか、で対処の仕方が変わると思うけど
追加する行をどう選定してるのかな

962 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 14:39:51.26 ID:5Z+LEgjB.net]
5桁の数字で44032から55215だけにマッチさせる表現はありますか?
自分で作ったら42〜や40〜にもマッチしてしまう気がします
どうぞご教示お願いします

963 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 15:06:04.11 ID:9XUMgpP/.net]
>>944
正規表現でやることじゃないが
4(4(0(3[2-9]|[4-9][0-9])|[1-9][0-9][0-9])|[5-9][0-9][0-9][0-9])|5([0-4][0-9][0-9][0-9]|5([0-1][0-9][0-9]|2(0[0-9]|1[0-5])))

964 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 15:28:46.85 ID:5Z+LEgjB.net]
>>945
うわー、早速ありがとうございます
まだ読みこなせていませんが[0-9]を使っていい範囲と、使ってはいけない範囲を分解してORで書く感じですね
これが使えないのは意地悪ですよね
[44032-55215]

965 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 15:55:01.33 ID:qZcVpQDS.net]
[ab-cd]がab〜cdの範囲にならないのも意地悪か?

966 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 16:13:12.11 ID:VAe27q9f.net]
そもそも正規表現でやることじゃないし意地悪とか意味不明

967 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 16:14:48.14 ID:lo050pCS.net]
何にでも得手不得手ってあるからな
プロ野球選手にサッカーやらせてヘタクソって言ってるみたいなもんだ



968 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 00:50:49.36 ID:q1JDjPNt.net]
>>946
何でそれで行けるべきと思ったの?

969 名前:デフォルトの名無しさん [2017/02/24(金) 06:14:30.86 ID:pM2eDGo5.net]
>>950
横からでスレチで悪いが「行けるべき」はさすがに気持ち悪い。(反応不要です)

970 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 12:34:06.37 ID:flbrvxvt.net]
>>944
俺はそういう数の範囲をマッチさせる正規表現を組み立てて返す関数をPerlで作ったわ
再起呼び出しを駆使すれば意外とシンプルなコードが出来るぞ

>>948
正規表現でのみ検索してデータを返すシステムだと正規表現でやるしかないんだわ
データを全部受け取って比較演算子でやれればいいんだけどな

971 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 12:58:27.24 ID:d9mNErv5.net]
>>952
まあそういうことだけど、そんな場合ってあまり無いよね
多分質問者もそういう環境じゃないと思うな
言語系ではないだろうからエディタ、excel等だと思うけどマクロが組めないだけなんだろう

972 名前:デフォルトの名無しさん [2017/02/25(土) 15:45:30.85 ID:uYJa88pq.net]
正規表現だけで対応すべきか、素直にプログラムを書いて対応すべきかを見極めるのが、正規表現と付き合ううえで一番大事な部分。

973 名前:デフォルトの名無しさん [2017/02/25(土) 23:44:12.95 ID:kQQR0LzA.net]
●Regular Expressionの使用環境
phpのpreg_match_all

●検索か置換か?
検索

●説明
サイトの引越をするために外部のhtmlファイルをfile_get_contentsで取得しました。
ついでに画像のパスも変更したいと思い、imgタグはシンプルな正規表現でかけたのですが
inputタグでtypeがimage、しかも1つのinputタグのなかにsrcやonmouseoverなど、複数の画像パスがあり全てをヒットさせたいです

●対象データ
前略〜
<div class="xxxxxxx"><input type="image" name="xxxxxxxx"
onclick="doSubmit();" src="images/xxxx.jpg" value="GO" alt="GO"
onmouseover="this.src='images/yyy.gif'"
onmouseout="this.src='images/zzzzz.png'" /></div>
〜攻略

●希望する結果
hogehoge(0) = "images/xxxx.jpg"
hogehoge(1) = "images/yyy.gif"
hogehoge(2) = "images/zzzzz.png"

よろしくお願いします!

974 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 05:09:07.37 ID:mfQeCKHi.net]
>>955
php知らんので確認はできないけど
(?:<input\s(?=[^>]*?type=["']image["'])|\G)[^>]*?src=["']\K([^"']+)
でどうかな?
「<input type = image」のような記述も許すのなら改造してくれ

975 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 05:15:54.55 ID:mfQeCKHi.net]
あっ末尾括弧不要だね ["']+

976 名前:デフォルトの名無しさん [2017/02/26(日) 12:18:45.95 ID:2VvxLCqH.net]
>>955
単に拡張子を狙って
(images/.+)\.(png|jpg|gif)
なんてのはどうでしょう

977 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 12:33:57.08 ID:DjVx44l4.net]
ディレクトリの名前はimagesとは限らないんじゃない?
preg_match_all('/(?<=[\'"])[\w\/-]+\.(?:jpe?g|gif|png)(?=[\'"])/i',$data,$match);

とかはどう?



978 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 12:48:58.15 ID:mfQeCKHi.net]
そうだね
用件が、inputタグで属性typeがimageの場合とあるけど
サイト引っ越すんならそんな場合に限定するのはおかしいので
全部(他のタグ中や普通の表示文字列内や、コメント内にあったとしてもそれも)
取り出したほうがいいもんね

979 名前:941 [2017/02/26(日) 14:41:53.86 ID:/FywCWxK.net]
>>956
希望したかたちでひろえました、ありがとうございます!
>>958-960
通常のimgタグは945に似た形の正規表現で処理済みでした、ありがとうございました。

復習しておきたいんですが
「正規表現 量指定子」とかだと942の\Gとか\Kでてこないんですが
なんてググればいいでしょうか?

980 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 16:15:05.06 ID:340uhvEW.net]
>>953
うん、あまり無いね
初めて出くわしたときは眩暈がしたわ

981 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 17:00:40.89 ID:mfQeCKHi.net]
>>961
もう見つかってるとは思うけど
正規表現入門とか解説とかいうページは読み物としてはいいかもしれないが機能を検索するには不向き
まずは機能一覧を探すようにする
例えばphpの場合は、公式マニュアルを最初に探す
「php 正規表現 マニュアル」
そうすれば、次には「エスケープシーケンス」も検索に追加するとかが分かる
php.net/manual/ja/regexp.reference.escape.php
他の言語の場合も
「正規表現 ruby」「正規表現 鬼車」とかでまず機能一覧のページを探せばいい

982 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 17:11:28.50 ID:mfQeCKHi.net]
ruby等の場合のURLが抜けた
doc.okkez.net/2.0.0/view/spec/regexp
k-takata.o.oo7.jp/mysoft/bregonig.html

983 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 18:00:18.91 ID:iMAoOT+h.net]
最近紙の技術書とか読まなくなったな。
使いたい機能を見つけるのに時間がかかりすぎる。
正規表現検索対応の電子ブックで出してくれたら買うんだが。

984 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 18:05:23.06 ID:1a5Lx6dL.net]
正規表現は独自拡張が多過ぎるからC++で採用されたECMAScriptの正規表現を中心に後はライブラリのマニュアルとか見るしかないと思う

985 名前:デフォルトの名無しさん [2017/02/26(日) 18:23:17.94 ID:/FywCWxK.net]
>>963
エスケープシーケンスね、ありがとうございます。

986 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 20:23:41.21 ID:mfQeCKHi.net]
>>967
使ってないとは思うが、独自データ属性でdata-type="image"とかがあったら誤爆するんで訂正
(以前のレスで["']+とか用件とか間違い発言もあるがさらっと流してね)
(?:<input\s(?=[^>]*?(?<=\s)type=["']image["'])|\G)[^>]*?src=["']\K[^"']+

987 名前:941 [2017/02/27(月) 03:32:24.96 ID:Gb3k9mdh.net]
フォローありがとうございます。
> 独自データ属性
そんな高度なものは使っていなかったので大丈夫でしたが違いを確認します!



988 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 06:33:36.26 ID:9DaoieFN.net]
「RegEx」ってどう読むの?

989 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 09:51:57.42 ID:K9fW84T9.net]
レギュラーエクスプレッション

990 名前:デフォルトの名無しさん [2017/03/10(金) 12:27:48.83 ID:7jiyOitp.net]
正規表現

991 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 17:19:49.64 ID:Qd1RBCEf.net]
レグエックス

992 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 21:32:21.03 ID:nO8xf2gI.net]
Fedex のように発音するとどこかに書かれてた。

993 名前:デフォルトの名無しさん [2017/03/10(金) 21:35:15.44 ID:1tgzEo2G.net]
ネイティブの発音だと「レゲェ」って聞こえる

994 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 23:03:16.24 ID:tXKdCDND.net]
>>974
オライリーの「詳説正規表現」に書かれてたね
自分は「レゲックス」なのか「レジェックス」なのか分からずにいる

995 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 23:32:21.48 ID:nXK4riNi.net]
regularの発音に沿うならレゲックスっぽい

996 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 23:40:40.57 ID:1IM+xFdJ.net]
今までレグイーエックスと言っていたが、レゲックスていいな、そう呼ぶかな

て、よく考えたら脳内でしか使うことないからどうでも良いか

997 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 23:43:33.53 ID:1IM+xFdJ.net]
>>977
沿ったらレギュックスに思えてきた…



998 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 02:12:11.37 ID:0+qQEpf8.net]
ejje.weblio.jp/content/regex
リージェックスって言ってる

999 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 02:17:46.28 ID:eS2MfmCX.net]
cflagsをしーえふえるえーじーえすって読んでるから多分機械読みだぞ

1000 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 03:41:24.62 ID:0+qQEpf8.net]
発音記号・読み方 /ˈɹɛdʒˌɛks(英国英語)/
って書いてあんじゃん

1001 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 04:25:00.20 ID:eS2MfmCX.net]
/??????ks/もあるんだよなぁ

1002 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 06:33:15.42 ID:ksNuoGmO.net]
素直に読めば「レジェクス」だと思うんだけど
一人もいないね・・・

1003 名前:デフォルトの名無しさん [2017/03/11(土) 08:25:08.64 ID:Z8dykLLF.net]
大文字になっているEを単語の区切りと見て素直に読むと、レグエックスかも知れん。

1004 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 08:39:37.23 ID:RCY883uq.net]
exit読みから派生してレジイク

1005 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 09:08:04.37 ID:h5T3JHpB.net]
レジクソだろ

1006 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 10:18:11.95 ID:8EPAG5jM.net]
レゲエが拡張された新しい音楽スタイル、レゲックス。

1007 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 11:04:00.74 ID:JsoExgwj.net]
>>980
そんなのアテにならん



1008 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 11:05:34.57 ID:JsoExgwj.net]
>>985
レグェックス

1009 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 16:38:47.83 ID:ksNuoGmO.net]
なんか吐いてるみたいw

1010 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 19:37:16.33 ID:M5Z0zeDZ.net]
極力舌を上顎に付けないrの発音を練習しておいて
gexの部分を「ウェッ」みたいに言えるようになってから、

「正規表現とかけて赤ワインの飲みすぎと解く、その心は?」
「ェウェッ…」

ってネタをやってる

1011 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 12:46:35.07 ID:1nW2SDLA.net]
TeXはテフだよね。だからレゲッフだと思う

1012 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 13:46:51.89 ID:N3DmujAP.net]
うじぇ

1013 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 13:47:05.18 ID:AvyIY0iY.net]
regexはリージェックスって脳内で読んでたが少数派か

rege…という綴りをまんまローマ字読みするのはものすごく違和感がある
それなりに英語ができる人は同じ違和感を覚えるんじゃないかな

1014 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 13:50:40.48 ID:N3DmujAP.net]
https://ja.glosbe.com/ja/fr/RegEx
docs.python.jp/3/howto/regex.html
docs.python.jp/2/howto/regex.html
https://social.msdn.microsoft.com/Forums/ja-JP/d773b6e0-17a3-4d51-9302-e4bfcdd3607d

1015 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 13:54:49.96 ID:RsKsx8Gp.net]
レジェックスとか言ってる人は
regenerateを”れじぇねれーと”とかallow,denyを"あろー,でにー"とか言ってそう
いわゆる日本人読みやな

1016 名前:デフォルトの名無しさん [2017/03/13(月) 14:31:12.60 ID:N3DmujAP.net]
warning

1017 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 14:31:47.74 ID:A9v11X3F.net]
ぬるぽ



1018 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 19:07:11.42 ID:83MIjbrk.net]
>>997
では外国人読みは

1019 名前:デフォルトの名無しさん [2017/03/13(月) 19:49:58.60 ID:xj6UKIPj.net]
へじぇっ

1020 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 22:19:32.27 ID:DSeW/X1Y.net]
ドイツ語やラテン語をある程度知ってるとレゲックスは自然に感じる

1021 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 10:24:26.23 ID:vbV/Jpv3.net]
補充

1022 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 12:36:40.80 ID:6d/Dn8y7.net]
>>1000
日本語で書けばリージェックスやろ
>>982に発音記号も書いてあるやん
regeという字面ならreは日本語で書くと”り”と発音するのが普通

読み方1つで教養ってでるよな
ALTをアルトなんて読むアホはalternativeという単語も知らないのだろうし

1023 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 12:45:02.10 ID:zY6yKh7C.net]
allow denyなんかは中学英語のアクセントや読み方の頻出単語だから
まともに読めない人は色々とお察しはする

1024 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 13:00:00.43 ID:Hvng9m9D.net]
外国語 = 英語という短絡もお察し

1025 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 13:29:37.99 ID:dFlCfFI8.net]
>>1005
嘘やろ
denyを中高で習った覚え無いわ
今調べてもセンター試験対策レベル扱いだし

1026 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 15:57:04.16 ID:vbV/Jpv3.net]
>読み方1つで教養ってでるよな

1027 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 16:02:24.86 ID:GQqLH83Y.net]
造語で正式な読みも規定されてないし、IPAの発音記号だって2つ併記されてるものをどうこう言うのも大人気ない
2つのうちの好きなほう使えばいいじゃん



1028 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 18:36:34.78 ID:gK5uM7c+.net]
>>1005
こないだ職場でデニーって読んで
「デニーズじゃないんだからw」とバカにされたとこだよ…orz

1029 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 19:06:49.29 ID:ODacrlG+.net]
俺中卒だけどデナイだろ?

1030 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 01:00:45.86 ID:ko4BTSP2.net]
次スレ立ててくるよ

1031 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 01:57:31.39 ID:458LHYZa.net]
中学で英語だけは年に1回は100点取ってたけど
denyを教わったことはない

1032 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 02:10:35.21 ID:ko4BTSP2.net]
規制もらってたので代行お願いしました

Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net
echo.2ch.net/test/read.cgi/tech/1489511075/

1033 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<258KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef