2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

正規表現 Part10

1 :デフォルトの名無しさん:2012/06/23(土) 01:38:40.22
正規表現(Regular Expression)スレです。

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

正規表現 Part9
http://toro.2ch.net/test/read.cgi/tech/1323566370/

天ぷら等2以降

2 :デフォルトの名無しさん:2012/06/23(土) 01:40:05.80
◆関連サイト
正規表現メモ
http://www.kt.rim.or.jp/~kbk/regex/regex.html
Perl正規表現雑技
http://www.din.or.jp/~ohzaki/regex.htm
Regular Expression(Riue ちゃんの正規表現講座)
http://www.sixnine.net/regexp/
正規表現パズル
http://www.geocities.jp/oraclesqlpuzzle/regex/
詳説 正規表現
http://www.oreilly.co.jp/books/4873111307/
正規表現プログラミングFAQ
http://capslockabcjp.kitunebi.com/faq.html
JScript 正規表現の概説
http://msdn.microsoft.com/library/ja/script56/html/js56reconIntroductionToRegularExpressions.asp
.NET Framework 正規表現言語要素
http://msdn.microsoft.com/library/ja/cpgenref/html/cpconregularexpressionslanguageelements.asp
【 初心者 】 正規表現 【 入門 】
http://funcchan.blog16.fc2.com/

3 :デフォルトの名無しさん:2012/06/23(土) 01:40:50.29
◆関連スレ
[UNIX板] 正規表現
http://pc12.2ch.net/test/read.cgi/unix/1039165754/
[WebProg] 正規表現道場
http://pc11.2ch.net/test/read.cgi/php/1168450843/

◆前スレ
[1] http://pc8.2ch.net/test/read.cgi/tech/1062152374/
[2] http://pc8.2ch.net/test/read.cgi/tech/1131028296/
[3] http://pc11.2ch.net/test/read.cgi/tech/1156413899/
[4] http://pc11.2ch.net/test/read.cgi/tech/1186030400/
[5] http://pc12.2ch.net/test/read.cgi/tech/1212498448/
[6] http://pc12.2ch.net/test/read.cgi/tech/1241537764/
[7] http://hibari.2ch.net/test/read.cgi/tech/1268979408/
[8] http://hibari.2ch.net/test/read.cgi/tech/1301067486/
[9] http://toro.2ch.net/test/read.cgi/tech/1323566370/

4 :デフォルトの名無しさん:2012/06/23(土) 01:43:14.23
スルーされにくい質問のテンプレと例

●正規表現の使用環境
Java1.5

●検索か置換か?
検索

●説明
各行の1番目のAまでを検索したい

●対象データ
ABCA
BCAA
CABA

●希望する結果
ABCA
^
BCAA
^^^
CABA
^^

※ ^ はアンダーラインだそうな ^^;

5 :デフォルトの名無しさん:2012/06/23(土) 01:43:44.50
早すぎワロタ

6 :デフォルトの名無しさん:2012/06/23(土) 03:33:17.28
粘着が飽きるまで放置しとけばいいのに

7 :デフォルトの名無しさん:2012/06/23(土) 11:38:03.13
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所

8 :デフォルトの名無しさん:2012/06/23(土) 14:13:09.61
「正規表現が進化しない」ってなかなか斬新な表現だな。

「整数が進化しない」と言ってMSゴシック全角数字の汚さをdisるようなもんか

9 :デフォルトの名無しさん:2012/06/23(土) 15:12:58.81
正規表現ってパッと見じゃあ理解できない魔法の記号だからな。

10 :デフォルトの名無しさん:2012/06/23(土) 17:16:49.40
おれもそれを痛感する。なるべく正規表現つかいたくない

11 :デフォルトの名無しさん:2012/06/23(土) 17:34:40.59
逆にぱっと見てだいたい何やってるかわかるのが正規表現だよ。
正確に理解するには罠がたくさんあるけどな。

12 :デフォルトの名無しさん:2012/06/23(土) 18:04:03.08
正規表現を理解できないのに、プログラミング言語が理解できるはずがない。
本人がそう思ってるとしたら、理解したつもり、ってだけだ。

13 :デフォルトの名無しさん:2012/06/23(土) 18:14:44.85

      ,一-、
     / ̄ l |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ■■-っ < んなーこたーない
    ´∀`/    \__________
   __/|Y/\
 Ё|__ | /  |
     | У  |

14 :デフォルトの名無しさん:2012/06/23(土) 18:16:35.42
1行にかこうとするのが不自然だ。どの部分で失敗したかわかりにくい

15 :デフォルトの名無しさん:2012/06/23(土) 18:41:58.15
>>1

16 :デフォルトの名無しさん:2012/06/23(土) 20:53:03.91
$url の末尾に「/(スラッシュ)」が入っている場合と、入っていない場合があります。
入っている場合には自動でそのスラッシュをPHPの正規表現を使用して除去する為に
下記コードを書いたのですがエラーが出ます。
どこに問題があるのでしょうか?

//$url = "http://unnko.com/111";
$url = "http://unnko.com/111/"; //←この場合に末尾の / を除去したい

$url = preg_replace("/^(.+?)[/]$/","\\1",$url);

Warning (2): preg_replace() [function.preg-replace]: Unknown modifier ']'

17 :デフォルトの名無しさん:2012/06/23(土) 21:09:17.95
つ "#^(.+?)[/]$#"

http://www.php.net/manual/ja/regexp.reference.delimiters.php

18 :デフォルトの名無しさん:2012/06/23(土) 21:23:01.79
>>17
ありがとうございました。
因みに、 \\1 の部分はいつも決まり文句で書いているのですが
正直あまり意味が分かりません。
これって何を意味してるのでしょうか?

そもそも、>>16で記述したコードの場合
抽出された結果は、左辺( $url )に代入される為
\\1 なんてそもそもいらない気がしております。

19 :デフォルトの名無しさん:2012/06/23(土) 21:26:54.74
マニュアル読め。


20 :uy:2012/06/23(土) 23:00:10.02
教えてやろうと思ったけどやめた

苦しめ

時間を無駄にしろ

俺からレスがもらえたら削減できたはずの時間

無駄に悩め

21 :uy:2012/06/23(土) 23:16:07.25
a = "http://www.google.co.jp/"
a.sub!(/\/$/,"")
p a

正規表現て初心者が書くからカオスになるんだろうな


>$url = preg_replace("/^(.+?)[/]$/","\\1",$url);

バカかこれ

22 :デフォルトの名無しさん:2012/06/24(日) 19:21:57.40
\\1 

これってどういう意味?

23 :uy:2012/06/24(日) 20:35:56.27
後方参照だって教えただろ初心者はまじでしね
p "aaabbbccc".sub(/(bbb)/ , '__\\1__')

# ↓
#
# "aaa__bbb__ccc"


24 :デフォルトの名無しさん:2012/06/24(日) 20:56:13.56
>>23
thank you .

by the way i saw you at prgramer's board, you know?

25 :uy:2012/06/24(日) 23:55:43.66
いいえ

教えてないのに「教えただろ」
とかいってくる奴の真似をしてみただけ

26 :デフォルトの名無しさん:2012/06/25(月) 08:00:30.81
教えてください。複数行からのある文字列を含んだ
行の検索の記述方法です

●正規表現の使用環境
Java7

●検索か置換か?
検索

●説明
複数ある文字行からの検索で
一行中に[A]and[C]を含む行を抽出する方法
一行中に[K]or[S]を含む行を抽出する方法


●対象データ
ABCDEFG
HIJKLMN
OPQRSTU

●希望する結果
ABCDEFG (A and C)
HIJKLMN と OPQRSTU  (K or S)



27 :デフォルトの名無しさん:2012/06/25(月) 08:47:02.57
(.*A.*C.*|.*C.*A.*)

([KS]+)

28 :デフォルトの名無しさん:2012/06/25(月) 09:06:15.79
>>27
うあ!早々にありがとうございます。
あまえついでに検索対象が「単語」になった場合はどうしたら良いでしょうか?


●正規表現の使用環境
Java7

●検索か置換か?
検索

●説明

複数ある文字行からの検索で【単語A】【単語B】をand/or検出

●対象データ

むかしむかし、おじいさんは山に芝刈りに、おばあさんは川に洗濯に行きました(改行)浦島太郎はかめにのって海に出て行きました(改行)
そうすると、おじいさんは「わたしは小さなつづらでよい」といいました(改行)

●希望する結果

「おじいさん」and「おばあさん」
むかしむかし、おじいさんは山に芝刈りに、おばあさんは川に洗濯に行きました(改行)
「おじいさん」or 「おばあさん」
むかしむかし、おじいさんは山に芝刈りに、おばあさんは川に洗濯に行きました(改行)そうすると、おじいさんは「わたしは小さなつづらでよい」といいました(改行)




29 :デフォルトの名無しさん:2012/06/25(月) 09:08:42.34
条件後出し禁止

30 :デフォルトの名無しさん:2012/06/25(月) 09:11:08.50
(.*おじいさん.*おばあさん.*|.*おばあさん.*おじいさん.*)

(おじいさん|おばあさん)

31 :デフォルトの名無しさん:2012/06/25(月) 10:14:00.52
条件が複数になったときとかを考えると、
プログラム側でどんどん分割しちゃった方が実用的な気がする。

32 :デフォルトの名無しさん:2012/06/25(月) 10:41:47.04
>>29
ごめんなさい

33 :デフォルトの名無しさん:2012/06/25(月) 10:42:48.54
>>30
ありがとうございました。商品の名前の正式名と略名の両方で書かれた
論文があったので、助かりました


34 :デフォルトの名無しさん:2012/06/25(月) 11:43:15.33
このスレいつからこんなレベル低くなったんだ

35 :デフォルトの名無しさん:2012/06/25(月) 11:50:44.25
性器表現とか言い始めたあたりから

36 :デフォルトの名無しさん:2012/06/25(月) 12:28:40.41
べつにええやん

# 商品名の書かれた論文をJavaで検索ってのがちょっと気になる。

37 :デフォルトの名無しさん:2012/06/25(月) 12:31:08.18
好きとか嫌いとか言い出したあたりから

38 :デフォルトの名無しさん:2012/06/26(火) 17:37:34.04
指定されたファイルパスの拡張子を正規表現で変更しようとしています。
下記の場合、具体的には *.csv という拡張子を *.txt に置き換える為に
正規表現を書いたところ


string basic_path = @"C:\Users\YamadaTarou\Desktop\20120626_155147.csv";
System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(@".*\.(?)");
string replaced_path = r.Replace(basic_path, "txt");


parsing ".*\.(?)" - Quantifier {x,y} following nothing.

というエラーが出ちゃいます。 どこに問題があるのでしょうか?

39 :デフォルトの名無しさん:2012/06/26(火) 18:09:02.07
?は{0,1}

?の前に正規表現がない。
?が何もないものの後ろにある = ? following nothing. = Q. {0,1} following nothing.

?の代わりにcsvじゃまずいのか?


40 :デフォルトの名無しさん:2012/06/26(火) 18:14:12.19
>>39

指定される元のファイルが

CSV だったり TSV である可能性がある為、決め打ちが出来ません。

41 :デフォルトの名無しさん:2012/06/26(火) 18:34:15.41
http://msdn.microsoft.com/ja-jp/library/dsy130b4.aspx

ここの「省略可能な量指定子または代替構成体によるバックトラッキング」に書いてあるみたいに
.NETの正規表現エンジンってアトミック後読みとかしないと.*で全部調べるわけ?
.*?eとかなってたら普通はeを探すと思うんだけど

42 :デフォルトの名無しさん:2012/06/26(火) 18:37:08.80
つ ".*¥.(.sv)$"
つ ".*¥.(...)$"
つ ".*¥.([^.]*)$"

43 :デフォルトの名無しさん:2012/06/26(火) 19:03:53.51
^((?>[^.]+)\.)+(?>[^.]+)$
ぐらいにしないと無駄なバックトラックが入ってしまい効率が落ちるということになるのか・・・?
効率良く処理するには後ろから読んでいって欲しいところだがそんな制御は無理か・・・?
正規表現ってこんな訳のわからないものだったのか・・・?

44 :デフォルトの名無しさん:2012/06/26(火) 19:22:18.64
その方がよっぽど訳わからん

45 :デフォルトの名無しさん:2012/06/26(火) 19:26:56.75
ふくろう本を読め

46 :デフォルトの名無しさん:2012/06/26(火) 19:30:16.68
まあ適当でいいか
O(n^2)とかにならなければ気にすることないよな

47 :デフォルトの名無しさん:2012/06/26(火) 21:27:20.79
>>42
(^^)ありがとうございます。
早速、下記コードを記述したところ

string basic_path = @"C:\Users\YamadaTarou\Desktop\20120626_155147.csv";
System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(@".*\.([^.]*)");
string replaced_path = r.Replace(basic_path, "txt");

replaced_path  には、 "C:\Users\YamadaTarou\Desktop\20120626_155147.txt"
が入る事を期待していたのですが
replaced_path  には、 "txt だけ入ります。

うーん。あと一歩。


48 :デフォルトの名無しさん:2012/06/26(火) 21:36:50.81
.*消せ

49 :デフォルトの名無しさん:2012/06/26(火) 21:47:08.01
>>48
サンキュー
string basic_path = @"C:\Users\YamadaTarou\Desktop\20120626_155147.csv";
System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(@"\.([^.]*)");
string replaced_path = r.Replace(basic_path, ".txt");


で出来ました。

50 :デフォルトの名無しさん:2012/06/27(水) 13:19:26.92
5000円出してふくろう本買ってきたわ
高すぎるだろ・・・

51 :デフォルトの名無しさん:2012/06/27(水) 14:05:27.11
お前の脳みそに
皺が1本増えてよかったじゃないか。

52 :デフォルトの名無しさん:2012/06/27(水) 17:00:40.16
大学帽かぶってるやつか?

53 :デフォルトの名無しさん:2012/06/27(水) 17:06:52.63
フクロウ博士ではないな

54 :デフォルトの名無しさん:2012/06/27(水) 17:27:21.16
たま ぶくろう

55 :デフォルトの名無しさん:2012/06/27(水) 17:42:19.23
玉袋寛子っていまなにしてんのかな

56 :デフォルトの名無しさん:2012/06/27(水) 20:40:42.70
本買って勉強するのもいいと思うけど、
結局は実際の業務でgrep検索や正規表現で得たい結果を学んでいく方がいいと思う。

57 :デフォルトの名無しさん:2012/06/27(水) 21:14:27.90
実地独学だけで進むと、変な勘違いや基礎や初歩の欠落を抱えたまま
それに気付かず進んでしまう可能性もあるけどね

58 :デフォルトの名無しさん:2012/06/27(水) 23:17:21.48
URL文字列から次の事をしたいんですけど、
正規表現がどうもまずいみたいです。

また、ループの中でどう <last-string> でグループ化した値を参照したら良いかわかりません。
ご伝授下さい。

string test = "http://hogehoge.com/123.pdf"; //123.pdf をとりたい
//string test = "http://hogehoge.com/123.html"; 123.html をとりたい
//string test = "http://hogehoge.com/123.doc"; 123.doc をとりたい
//string test = "http://hogehoge.com/"; ""(空文字) をとりたい
//string test = "http://hogehoge.com"; ""(空文字) をとりたい

Regex regex = new System.Text.RegularExpressions.Regex(@"^.*\/(?<last-string>[a-zA-Z0-9.].*)$");
MatchCollection matchCol = regex.Matches(test);
for(int i = 0; i < matchCol.Count; i++)
{
//よくわからなん。
     //string gotten_string = matchCol[i].Value;
}


59 :デフォルトの名無しさん:2012/06/28(木) 01:22:43.03
細かくは試してないけど ^(.*//.*/.*)([^/]*)$ とかで行けそうな予感。
各言語/ライブラリの使い方については知らんけど。

60 :デフォルトの名無しさん:2012/06/28(木) 01:43:03.32
あ、だめだ。ごめん>59は忘れて

61 :デフォルトの名無しさん:2012/06/28(木) 03:31:36.63
var pattern = "http://.*/(.*)$"
var hostOnly = "http://[^/]+$"

patternにマッチしたらOKで
マッチせずhostOnlyにマッチしたら空文字列でいいんじゃない

62 :デフォルトの名無しさん:2012/06/28(木) 09:24:52.19
>>58

string test = "http://hogehoge.com/123.pdf";

Regex regex = new System.Text.RegularExpressions.Regex(@"^.*\/(?<last_string>[a-zA-Z0-9]+\..*)$");
MatchCollection matchCol = regex.Matches(test);
foreach (Match m in matchCol)
{
GroupCollection groups = m.Groups;
var gotten_string = groups[1];
}

まず正規表現の文字列見直せ。 [a-zA-Z0-9.].* だと 英数字か.で始まる文字列。
あと、どこ見たのか知らんけど、これしきの要件でなんで使い方も分からんグループ化など使うんだ。
http://msdn.microsoft.com/ja-jp/library/bs2twtah(v=vs.100).aspx みなおせ。 名前に-を入れるな 違う意味だ。

63 :デフォルトの名無しさん:2012/06/28(木) 09:38:30.70
var gotten_string = test.Substring(test.LastIndexOf('/')+1);
これでいいんじゃねーの?

64 :デフォルトの名無しさん:2012/06/28(木) 15:36:00.82
ふくろう本読んだらいきなり完璧な正規表現書けるようになったわ
1日で必要なとこ全部読めたし超読みやすい
神すぎる

65 :デフォルトの名無しさん:2012/06/28(木) 16:37:41.17
>>63
全部正規表現でやりたいのですたい。

66 :デフォルトの名無しさん:2012/06/28(木) 17:08:32.69
シンプルな正規表現は最適化が効いて高速に動く
プログラムで組み立てたほうが分かりやすい
なんでも正規表現で書こうとするのは愚か

67 :デフォルトの名無しさん:2012/06/28(木) 17:23:55.69
プログラムで組み立てた方が分かりやすいのは確か。
だけど正規表現を華麗に使いこなせる様になりたいの。

68 :デフォルトの名無しさん:2012/06/28(木) 21:17:36.02
>>62
ありがとうございます。
流石にこの程度の物に対して正規表現を使うのは大げさな気がしました。

69 :デフォルトの名無しさん:2012/06/28(木) 21:23:36.36
>>63
流石になんでもかんでも正規表現をやるのはどうかと思いました。
その様にプログラムを今回は使う事にします。

70 :デフォルトの名無しさん:2012/06/29(金) 10:06:32.67
>>66-67
要求としてはどっちも正しいよな、ほんと。


71 :デフォルトの名無しさん:2012/07/02(月) 19:40:41.37
数値比較を正規表現だけでやることになって、たった4桁なのに泣きそう。

72 :デフォルトの名無しさん:2012/07/02(月) 19:42:21.41
簡単じゃねーか

73 :デフォルトの名無しさん:2012/07/02(月) 19:51:37.98
あら、そうなのか。調べても分からんかった。

74 :デフォルトの名無しさん:2012/07/02(月) 20:03:30.29
せめてググレよw

75 :デフォルトの名無しさん:2012/07/02(月) 20:12:37.16
正規表現だけで、二つの並んだ四桁の数字の大小比較をするのは、
プログラム生成するしかないような巨大な正規表現になる。

76 :71=73:2012/07/02(月) 20:42:11.85
>>74
ググったんだけど、\d+とか[0-9]+とかしか出てこなくて。

>>75
今回の為だけに、正規表現を生成するプログラムを作ろうかとまで思ったw

77 :デフォルトの名無しさん:2012/07/02(月) 22:56:17.99
^.+(?=[wWwW][  。]*(?:<br>|$))

2chブラウザで芝をNGする正規表現なのですが、いくつか分からない場所があります
?=や?:はどういった意味なのでしょうか?
調べてみたのですが、うまく出てきませんでした

また、^.+や.+$で挟む必要はあるのでしょうか?
書いてあるほうが重畳かと思いますが、書いてない場合も見受けられます
どちらでもいいのでしょうか?

また、これでは「そうかwwwwよくわかったわ」のように真ん中に芝が入っているレスはNGできません
ワールドワイドウェブは保持しつつも芝を完全にNGする書き方はないでしょうか?
よろしくお願いします。

78 :デフォルトの名無しさん:2012/07/02(月) 23:18:56.96
>>1

79 :デフォルトの名無しさん:2012/07/02(月) 23:40:18.28
このスレはテキストエディタでの正規表現を質問してもいいですか?

80 :デフォルトの名無しさん:2012/07/02(月) 23:52:46.01
どうぞどうぞ

81 :デフォルトの名無しさん:2012/07/02(月) 23:52:46.84
なんでダメだと思ったの?
スレタイを10回嫁

82 :デフォルトの名無しさん:2012/07/02(月) 23:59:20.48
>>81
プログラム板なのでプログラム関係の質問だけしかしてはいけないのかと思いまして一応確認を取らさせていただきました。


では失礼します。

テキストエディタ「Apsaly」を使用しています。

test1やtest2などの文字列を検索して、
test6、test7のように決めた分(今は+5)だけ数字の値を増やしながら置換することは出来ますか?

83 :デフォルトの名無しさん:2012/07/03(火) 00:07:41.25
わろた
自分でテキストエディタ作ってんじゃないのか

84 :デフォルトの名無しさん:2012/07/03(火) 00:12:38.98
ごめんなさい
やっぱり駄目でしたか

85 :デフォルトの名無しさん:2012/07/03(火) 00:14:23.36
痴漢は正規表現の仕事じゃねーし。
MikoScript書け。

86 :デフォルトの名無しさん:2012/07/03(火) 00:15:45.12
痴漢は性器の・・・

87 :デフォルトの名無しさん:2012/07/03(火) 00:18:34.42
>>85
すいません
痴漢に多くを求めてしまいました

MikoScriptなんてのがあったんですね
これなら何とかできそうです
ありがとうございました

88 :uy:2012/07/04(水) 03:56:37.07
>>81
>>84

俺はこの流れのほうがワロタだわ


>プログラム板なのでプログラム関係の質問だけしかしてはいけないのかと思いまして一応確認を取らさせていただきました。
誰が決めたの?
つうか答えられる奴が少ないから答えが返ってこないだけ

89 :デフォルトの名無しさん:2012/07/04(水) 04:06:01.96
どう考えてもスレ違い

90 :uy:2012/07/04(水) 10:57:08.19
スレ違いつうかApsaly用の質問スレなんてないし
IDE + テキストエディタ系の専用質問スレがあったほうがいいんじゃね

91 :デフォルトの名無しさん:2012/07/04(水) 23:16:05.48
Apsalyは公式サイトに掲示板ないのに、ソフトウェア板のスレまで閑古鳥が鳴いてるという不人気エディタなのに、
ム板で普通に会話が成立しているのに驚いた
もしかしてMikoScriptって意外と使ってる人多いの?

92 :デフォルトの名無しさん:2012/07/05(木) 00:33:13.30
/A(?:(?(R)b|c)|(?R))+/

これって何にヒットするんです?
AbとかAcなんかじゃヒットしない
ホントこれだけが正規表現の中で動きが全くわからぬ

93 :デフォルトの名無しさん:2012/07/05(木) 11:56:16.57
PCREだと
(?(R)b|c) が 再帰式中ではb そうでなければ c なので  
Ac+ とかAAbとかが該当するんだけど環境は?

94 :デフォルトの名無しさん:2012/07/06(金) 16:54:42.65
(?(R)って何?
PCREってほんとにPerl互換なの? そんな機能知らないわよ

95 :デフォルトの名無しさん:2012/07/06(金) 17:17:58.74
>>94
http://perldoc.jp/docs/perl/5.14.1/perlre.pod#Extended32Patterns
> (?(condition)yes-pattern|no-pattern)
> (?(condition)yes-pattern)
> (condition) はかっこでくるまれた数値(対応するかっこ対が マッチングしたときに有効)、
> 先読み/後読み/ゼロ幅で評価される言明、角かっこ もしくはシングルクォートで
> くるまれた名前(その名前のグループが マッチングしたときに有効)、
> 特殊なシンボル (R) (再帰または eval 内で 評価されているときに真)のいずれかです。

> (R)
> 式が再帰の中で評価されているかどうかを調べます。

96 :デフォルトの名無しさん:2012/07/06(金) 18:06:10.18
なるほど・・・意味が分からん

97 :デフォルトの名無しさん:2012/07/14(土) 20:33:20.42
最後に○○がつくけどマッチング文字列に含めないってどうすればいいんでしったっけ

98 :デフォルトの名無しさん:2012/07/14(土) 20:55:46.57
先読みのことかな?

あいう○○

う(?=○○)

後ろに○○がつく「う」にマッチ

99 :デフォルトの名無しさん:2012/07/15(日) 01:10:45.88
Aは(.+)
(.+)はB

という2つの文から
「AはB」
という文を作るにはどうすればいいですか?


100 :デフォルトの名無しさん:2012/07/15(日) 01:16:45.18
どゆこと?

101 :デフォルトの名無しさん:2012/07/15(日) 04:08:18.43
>>98
ありがとうございます。

102 :デフォルトの名無しさん:2012/07/19(木) 19:06:50.67
正規表現での置き換え文字列をランダム化する方法はありませんか?


検索文字列 半角スペースで挟まれたアルファベット4文字
( )(\w{1})(\w{1})(\w{1})(\w{1})( )
置き換え結果 以下から ランダムでどれかを出力
\1●●\3\4\5
\1●\2●\4\5
\1●\2\3●\5
\1\2●●\4\5
\1\2●\3●\5
\1\2\3●●\5
分かる方いましたらお願いします。
サクラエディタつかってますが


103 :デフォルトの名無しさん:2012/07/19(木) 19:23:09.77
普通にコード書けばええんや?

104 :デフォルトの名無しさん:2012/07/19(木) 21:47:09.24
その正規表現は一体

105 :デフォルトの名無しさん:2012/07/20(金) 18:43:47.12
>>102
マクロでがんばれ

ついでに
サンプルだからそうしてるのかも知れんけど
1文字ずつ指定するときは量指定子いらないよ

106 :102:2012/07/21(土) 00:37:12.97
>>103-105
返信ありがとうございます。

色々コードとか、何か別のプログラムとかの組み合わせで可能なのかどうか調べてみましたが、
プログラムの知識自体が無いのでやっぱり難しいのでしょうか

マクロについて、サクラエディタのmacファイルを直接編集で何とかできないかと試して見ます
1つの文書で数千箇所置き換え箇所があるのですが、マクロで何かよい書き方とかあるのでしょうか?

とりあえず色々調べてみます。

107 :デフォルトの名無しさん:2012/07/21(土) 17:52:39.23
for(int a = 1; a < 5; ++a)
 for(int b = 1; b < 5; ++b)
  if(a != b){
   int k = 0;
   for(int i = 0; i < 6; ++i){
    if(a == i || b == i) print(' ');
    else{ print(str[k]); ++k; }
   }
   print('\n');
  }

108 :デフォルトの名無しさん:2012/07/21(土) 17:55:19.04
ああちがうか
for(int i = 0; i < 6; ++i){
 if(a == i){ print(' '); }
 else if(b == i){ print(' '); ++k; }
 else{ print(str[k]); ++k; }
}
こうなのか

109 :デフォルトの名無しさん:2012/07/21(土) 18:03:36.25
いやランダムに一個選ぶだけか

//a,bは空白にしたいインデックス。str[b]はスキップされ戻り値に含まれない
string M(int a, int b, char[] str)
{
 if(a == b) throw new Exception();

 List<char> result = new List<char>();

 for(int i = 0; i < str.Length + 1; ++i){
  if(a == i){ result.Add(' '); }
  else if(b == i){ result.Add(' '); ++k; }
  else{ result.Add(str[k]); ++k; }
 }
 return new string(result);
}

110 :デフォルトの名無しさん:2012/07/21(土) 20:32:44.62
'([\x8E\xA1-\xFE][\xA1-\xFE])' で、euc の2バイト文字にマッチするかと思いますが、
このうち、「×」(\xA1DF)のみマッチさせたくないのですが、
どのように書けばよいでしょうか?

111 :デフォルトの名無しさん:2012/07/22(日) 14:32:08.52
http://homepage3.nifty.com/k-takata/mysoft/bregonig.html

112 :デフォルトの名無しさん:2012/07/22(日) 17:22:52.61
(A|B|C|D)と[ABCD]は
全く同じ意味ということでいいんでしょうか?
イマイチ違いが分かりません
使い分けとかあるんでしょうか

113 :デフォルトの名無しさん:2012/07/22(日) 17:37:23.71
>>112
それ単独で見れば同じように動く、だろうね。
速度とか効率とかの違いはあるかもしれないけど、そのへんは詳しい諸兄に任せる。

114 :デフォルトの名無しさん:2012/07/22(日) 17:43:07.64
>>112
俺は、単一文字なら [ABCD]、複数文字列なら (ABC|DEF|GHI|JKL)

115 :デフォルトの名無しさん:2012/07/22(日) 18:03:40.37
>>112
[ABCD]はシンタックスシュガーです。
意味的にはなくても問題無いです。
>>113
効率どっちがいいかは実装依存ですね。
状態遷移マシン使うタイプの実装なら差は出ないけど。

116 :デフォルトの名無しさん:2012/07/22(日) 18:24:01.31
ふくろう本には(A|B|C|D)だと遅くなる環境もあるって書いてあったよ
できるだけ[ABCD]使ったほうがいいと思う

117 :デフォルトの名無しさん:2012/07/22(日) 18:42:07.57
それはASCII文字の話じゃないの?
サロゲートペアを考えると[ABCD]なんて内部的にも実質無いも同然。

118 :デフォルトの名無しさん:2012/07/22(日) 20:21:15.68
サロゲートペアかどうかって何の関係が?UTF-8なら3バイトまでに収まるか4バイトかの違いに過ぎない。
マルチバイトに対応したエンジンなら1文字は1文字だし。

119 :デフォルトの名無しさん:2012/07/22(日) 20:47:22.57
UTF-16を内部表現に利用していると、
[ABCD]は、例えばBがサロゲートペアだと、(A|BB'|C|D)と同じになる。
サロゲートペアなくても内部UTF-8のエンジンは同等の変換が必要。

120 :デフォルトの名無しさん:2012/07/22(日) 20:59:13.92
えー

121 :デフォルトの名無しさん:2012/07/22(日) 21:18:43.74
同じになるとは限らんよ。バイト単位で比較するかコードユニット単位かコードポイント単位か、まさに実装次第。
しかしUTF-16なエンジンって少ない気がするんだが。

122 :デフォルトの名無しさん:2012/07/22(日) 21:28:30.44
えっ
Javaや.netのは

123 :デフォルトの名無しさん:2012/07/22(日) 21:55:09.72
boost::u32regexはサロゲをまともに処理できる。
unicode扱いはICU任せで32bit幅wchar使ってるんで。

PCREはカオスすぎてわけがわからん。
内部はバイト列でUTF16とUTF8のモードがifdefで錯綜してて。

124 :デフォルトの名無しさん:2012/07/22(日) 22:00:51.71
>>122
すまん、全く眼中になかったwww

125 :デフォルトの名無しさん:2012/07/22(日) 22:20:14.16
>>110
> '([\x8E\xA1-\xFE][\xA1-\xFE])' で、euc の2バイト文字にマッチするかと思いますが、
> このうち、「×」(\xA1DF)のみマッチさせたくないのですが、
> どのように書けばよいでしょうか?
鬼車や鬼雲を正規表現エンジンとするRuby1.9系やサクラエディタ(要bregonig.dll)なら
[\x8E\xA1-\xFE\xA1-\xFE&&[^×]]
でどうでしょうか?
#文字クラス内で積演算の&&が使えないよう環境なら、否定先読みを併用すればできるのかな?

http://www.geocities.jp/kosako3/oniguruma/doc/RE.ja.txt
https://github.com/k-takata/Onigmo/blob/master/doc/RE.ja
6. 文字集合
^... 否定 (最低優先度演算子)
x-y 範囲 (xからyまで)
[...] 集合 (文字集合内文字集合)
..&&.. 積演算 (^の次に優先度が低い演算子)
例. [a-w&&[^c-g]z] ==> ([a-w] and ([^c-g] or z)) ==> [abh-w]

126 :デフォルトの名無しさん:2012/07/23(月) 12:44:45.94
今時マルチバイト文字を文字単位で扱えない環境なんて嫌だな
あとEUCJPは3バイトまであるし

127 :デフォルトの名無しさん:2012/07/23(月) 13:03:05.65
嫌な環境なら使わなければ良いだけなのに。
何言ってんのこいつ。

128 :デフォルトの名無しさん:2012/07/23(月) 16:12:33.90
>>127
好き嫌いで何とかなる類のものでも無いだろw
真っ先に変換しとけ、というなら分かるが。

129 :デフォルトの名無しさん:2012/07/23(月) 17:08:30.35
いや、嫌だって思うのは自由だし、普通の感情だろ。

130 :デフォルトの名無しさん:2012/07/23(月) 17:10:02.76
本当に今欲しい物 それはその答えですか?


131 :デフォルトの名無しさん:2012/07/23(月) 18:00:50.91
>>129
好き嫌いの感情自体は誰も否定してないんだ

132 :デフォルトの名無しさん:2012/07/23(月) 19:08:36.13
人が嫌がるものだからこそ金になるんだろ。

133 :デフォルトの名無しさん:2012/07/23(月) 21:09:24.31
Javaも.NETも2バイト以外の文字は使えない設計だよね

134 :デフォルトの名無しさん:2012/07/23(月) 21:22:58.49
Python は安心

135 :デフォルトの名無しさん:2012/07/23(月) 21:27:33.74
えっ
.NETでも普通にサロゲートペア文字検索できるけど

136 :デフォルトの名無しさん:2012/07/23(月) 21:43:30.89
> 2バイト以外の文字は使えない

そもそも何を言わんとしているかわからん。


137 :デフォルトの名無しさん:2012/07/23(月) 21:47:18.68
馬鹿には無理

138 :デフォルトの名無しさん:2012/08/03(金) 21:50:53.37
javascriptで下記のような置換を行いたいのですが、どのようにすれば良いでしょうか?

hogehoge1
<img src="1.png">
<img src="2.png">
<img src="3.png">
<img src="4.png">
<img src="5.png">
hogehoge2
 ↓
hogehoge1
<img src="1.png">
hogehoge2



おながいします
おながいします

139 :138:2012/08/03(金) 22:20:30.79
自己解決しましたすんません

140 :デフォルトの名無しさん:2012/08/04(土) 07:53:41.34
>>138
どういう置換だったのだろうか。
1) hogehoge1 と hogehoge2 の間の先頭の一行のみ残し、他の行は削除。
2) hogehogeN と hogehogeN+1 の間で N.png を含む行だけ残し、他の行は削除。
くらいの可能性があると思うが。第一感は2)だが、hogehogeN+1以下をどうするか書くべき。
1)の解釈の方が無難。

141 :デフォルトの名無しさん:2012/08/07(火) 00:04:48.96
●正規表現の使用環境
C#

●検索か置換か?
検索

●説明
●▼■ の部分をマッチさせたい

●対象データ
ほげほげ●▼■ほげおわり
ほげほげ●▼■ほげここまで

●希望する結果
●▼■

ほげほげ(?<1>.+?)ほげおわり|ほげここまで

のように書きましたがだめみたいです。
これだと
ほげほげ(?<1>.+?)ほげおわり もしくは
ほげここまで
という風になってしまうのでしょうか?
ほげおわり か ほげここまで のどちらかという書き方を教えてほしいです。

142 :デフォルトの名無しさん:2012/08/07(火) 00:52:15.90
C#のソースコードで書いてよければ
「(ほげほげ)(.+?)(ほげおわり|ほげここまで)」で検索して、
match.group(1)で取るだけで足りるのでは?
group(1)でグループを取り出してないのと、「|」の優先順位が後回しなのが原因だと思う

143 :デフォルトの名無しさん:2012/08/07(火) 01:42:57.32
ありがとうございます。
その方法でできました。
グループの指定の仕方を勘違いしていたようです。

144 :デフォルトの名無しさん:2012/08/07(火) 11:23:49.88
javascript処理です。

<input type="image" name="" src="/printer.gif" value="PRINT"
onclick="myFunc('/print.do','100024516675','05','100051319097','PRINT','4756615037424747126');return false;">
のタグから,onclickの内容を文字列で取得した後に,引数を正規表現で取得しようとしてます。

func = "myFunc('/print.do','24516675','05','1051319097','PRINT','4756615037424747126');return false;"
ret = func.match(/'[^']*'/g);

とすると前後のクウォーテーションも混じってしまうので,現状はval[0] = ret[0].slice(1,-1)のように後処理してます。

これをはじめから正規表現を使って後処理なしにする正規表現が思いつきません(あるとは思うのですが)
要するに、二つの「'」に囲まれた文字列に複数回マッチするが「'」そのものは含まれない。というものです。

よろしくお願いします。

145 :デフォルトの名無しさん:2012/08/07(火) 11:55:03.96
これもグループ化の出番だと思う
  ret = func.match(/'([^']*)'/g);
と取り出したい部分をカッコでくくって
  ret[i].$1;
と$1=1番目のグループマッチ文字列内容を取り出す

※ブラウザ互換は自信がないので確認されたし。IEやFirefoxは大丈夫なはずだが

146 :デフォルトの名無しさん:2012/08/07(火) 13:29:23.05
>>145
ありがとうございます。残念ながらSafari環境ではダメでした。
var re = /'([^']*)'/g;
var match;
while ((match = re.exec(func))) { alert(match[0] + "\n" + match[1]); }
でできるようです。

でも,,,sliceから変更するメリットが,,,

147 :デフォルトの名無しさん:2012/08/07(火) 16:03:26.73
'を外す表現があるような気もするけど、
多分 slice(1,-1)より遅いと思う。

148 :デフォルトの名無しさん:2012/08/07(火) 16:58:08.04
>>138,>>140
二度と来るなhoge厨

149 :デフォルトの名無しさん:2012/08/07(火) 18:19:28.22
javascriptはjQueryを使った方が可読性が上がって好き。

150 :デフォルトの名無しさん:2012/08/08(水) 00:43:27.27
echo "gr|y" |grep -e "gr[a|e]"
> gr|y
gray、またはgreyだけでなく、
なんで|記号まで対象になってしまうでしょう?


151 :150:2012/08/08(水) 00:45:43.03
echo "gr|y" |grep -e "gr[a|e]y"
最後、yがぬけてた。
|記号は普通の文字列として扱われてしまっているのでしょうか・・

152 :デフォルトの名無しさん:2012/08/08(水) 00:56:45.81
それをやるなら "gr[ae]y" か "gr(a|e)y" だろ

153 :デフォルトの名無しさん:2012/08/08(水) 02:44:20.82
 韓国開発研究院(KDI)が5日に発表した報告書によると、統計庁の2011年の家計金融調査を分析した
結果、借金を抱える世帯の33%が赤字状態で、7%は負債が資産を上回っていることが分かった。

 韓国の世帯数は1757万世帯(2010年現在)で、うち借金がある世帯が63%を占めることから、借金があり、
かつ赤字状態の世帯は365万世帯に達することになる。また、負債が資産よりも多く、かつ赤字状態の世帯は
全体の3.3%(36万世帯)だった。特に債務返済能力は低所得層ほど低いことが分かった。

 漢陽大のハ・ジュンギョン教授は「不動産市場の低迷で資産の売却が難しく、借金があり赤字状態の世帯が
さらに借金を重ねる悪循環に陥る可能性がある」と懸念を示した。

キム・テグン記者


朝鮮日報/朝鮮日報日本語版: 2012/08/06 09:08
http://www.chosunonline.com/site/data/html_dir/2012/08/06/2012080600636.html


154 :デフォルトの名無しさん:2012/08/08(水) 11:00:19.07
とりあえずperlで


<div class="test">

<div class="block">
だkfj;ぇkたj;
わえltかj;うぇlk

あうぇktじゃ;うぇkl
</div>

<pre>

</pre>

</div>



っていうhtmlのコードがあるとして、
<div class="test">から一番下の</div>までの中にあるデータを取得したいんですが、
これにマッチする正規表現ってありますか?

この中にも</div>がいくつかあるので、最後の</div>にマッチする前に何回かひっかかっちゃってうまくいかないんです
正規表現のプロの皆さんよろしくお願いします。

155 :デフォルトの名無しさん:2012/08/08(水) 11:03:10.34
マッチの終わりに</pre></div>を指定すれば・・・

156 :デフォルトの名無しさん:2012/08/08(水) 11:13:33.16
正しいタグの組じゃなくて最後の</div>でいいなら 最長一致の
<div class="test">.*</div> でいいわけで
そうでないなら html解析するべき

157 :デフォルトの名無しさん:2012/08/08(水) 11:14:43.84
あ、すいません。
最後の</div>のまえに必ず</pre>があるとは限らないんです。
やっぱ最後の</div>の直前か直後に他にはない決まった文字とかがないと無理っすよね〜

158 :デフォルトの名無しさん:2012/08/08(水) 11:15:43.77
>>156
あ、すいません。
最後の</div>

の後ろにも</div>とか
色んな文字が並んでます。

やっぱ>>157
で言ったとおり無理ですよね〜

159 :デフォルトの名無しさん:2012/08/08(水) 12:19:38.47
>>157
入れ子になった完全な<div> </div>のなかにあるデータというと
それはタグ(例えば<div>)を含んで構わないということかな。

160 :デフォルトの名無しさん:2012/08/08(水) 12:24:19.36
>>159
はい大丈夫です

161 :デフォルトの名無しさん:2012/08/08(水) 12:45:43.22
<div(?(R)[^>]*| class="test")>.*?(?R).*?<\/div>
PCRE だとこんな感じ?

162 :デフォルトの名無しさん:2012/08/08(水) 12:52:30.80
スレチだけど素直にxpath。
$ xmlstarlet sel -t -m "//div[@class='test']/*" -c . -n

163 :デフォルトの名無しさん:2012/08/08(水) 12:54:38.43
やっぱりperlじゃなくてPHPでお願いします。
正規表現が無理ならPHPの関数使ってでもいいです

164 :デフォルトの名無しさん:2012/08/08(水) 13:13:13.15
>>161
まんまだと駄目で
(?R)*にしても  <div class="block">の閉じで終わってしまう。

165 :デフォルトの名無しさん:2012/08/08(水) 16:00:17.05
PHPでお願いしますって言ってた質問もういいです。
preg_matchを繰り返せばなんとかとりたい部分だけ取れました。
ご迷惑おかけしました。

166 :デフォルトの名無しさん:2012/08/09(木) 03:48:44.49
性器表現

167 :uy:2012/08/10(金) 18:07:28.45
rubyの正規表現の質問です
連続して10回以上...無限にマッチさせる構文ってないですか?
/6{9}6+/
いまはこんな事をやっていますがもう少しスマートな書き方あれば教えて欲しいんですけど

168 :デフォルトの名無しさん:2012/08/10(金) 18:34:04.25
>>167
/6{10,}/

169 :uy:2012/08/10(金) 18:36:37.17
>>168
ありがとうございます

170 :デフォルトの名無しさん:2012/08/10(金) 18:38:34.97
改行を含むながー文字列で先頭にタブ文字が入ってるやつがあります。
このタブだけにマッチするには、

^\t

でいいんでしょうか?

^\t$

こうかと思ったんですがこれだとマッチしませんでした。

171 :デフォルトの名無しさん:2012/08/10(金) 18:44:36.79
>>170
>改行を含む

172 :デフォルトの名無しさん:2012/08/10(金) 18:46:38.61
質問しなおします。

改行を含むながーい文字列があります。この文字列の中にはタブ文字も含まれています。

この文字列の一番先頭にタブ文字が紛れ込んでいるやつがあります。
これを除去したいんです。

PHPのpreg_replaceを使うとしたら、

preg_replace("/^\t$/","",$str);

こうですか?
これじゃマッチしませんでした。。

173 :デフォルトの名無しさん:2012/08/10(金) 19:34:43.94
>>172
それは多分タブ文字しか含まない文字列にのみマッチする。
長いだっのか。ちゃんと書こう。

174 :デフォルトの名無しさん:2012/08/10(金) 20:55:35.73
文字列の先頭しか必要ない話なのに、文字列が改行含むかどうかが関係するのか?
それとも文字列には複数行が含まれていて、
そのどの行の先頭でも同じ変換をしないといけないわけなのか?

175 :デフォルトの名無しさん:2012/08/10(金) 21:07:25.04
>>174
それは$strに代入したあなたに聞いて。
あなたの書いた正規表現は文字列の1文字目がタブで、それが文字列の最後の文字だということ。つまり文字列が1文字でかつタブという正規表現。必要ないと言っても、必要としているスクリプトになってるから。

176 :デフォルトの名無しさん:2012/08/10(金) 21:27:21.32
私は>>174じゃありません

>>174
なんか正規表現の中で文字列の先頭を改行の後とみなすやつがあったので一応書いておきました。
もしそいつにもマッチしたら困るので


>>175
じゃあ最初の文字だけにマッチさせるにはどうしたらいいですか?
とにかく先頭にタブ文字がある文字列をピックアップしたいんです。
あ、じゃあsubstrで一文字取って、調べりゃいいですね。

皆さんありがとうございました。

177 :デフォルトの名無しさん:2012/08/10(金) 21:32:17.10
正規表現でやりたきゃ$が不要。
しかし正規表現必要ないな。

178 :デフォルトの名無しさん:2012/08/11(土) 06:43:50.15
>>176
PHPのは知らないけどPerlの正規表現では^は正規表現フラグm(マルチライン)が有効になってると、
^が文字列先頭以外にも改行直後(行頭)にもマッチしてしまうので、
正規表現フラグ関係なく、改行が含まれるかもしれない文字列の先頭のみにマッチさせたい場合は、
\Aを使うべし

179 :デフォルトの名無しさん:2012/08/11(土) 14:09:27.76
t

180 :デフォルトの名無しさん:2012/08/11(土) 14:17:57.80
>>178
そういう回答求めてました
ありがとうございました

181 :デフォルトの名無しさん:2012/08/11(土) 16:22:33.21
全体が10文字以内でaとbとcをこの順番に含むパターンってどうかきますか?

182 :デフォルトの名無しさん:2012/08/11(土) 16:40:58.70
>>181
プログラムを使えるなら楽なんだが… たぶん、正規表現だけってことだよねぇ

183 :デフォルトの名無しさん:2012/08/11(土) 16:44:12.55
xxx/abc/dfg/hij
xxx/abc/hij
この二つの文字列にマッチさせるようにするにはどうしたらいいでしょうか?

184 :デフォルトの名無しさん:2012/08/11(土) 16:50:11.71
>>183
「/abc/」を含む文字列すべて、ならこれでどうでしょうか?

.*/abc/.*

185 :デフォルトの名無しさん:2012/08/11(土) 16:52:50.83
xxx/abc/(dfg/)?hij で行けそうな


186 :デフォルトの名無しさん:2012/08/11(土) 17:19:33.04
>>184
>>185
ありがとうございます

187 :デフォルトの名無しさん:2012/08/11(土) 19:03:41.15
>>181
> 全体が10文字以内でaとbとcをこの順番に含むパターンってどうかきますか?
.*a[^c]*b[^a]*c.* と .{3,10} の肯定先読みか肯定戻り読みを合体させれば、
できるんじゃないかしら?

もっとも「1qabbbcd90」とか「aあbいbc」みたいなaとcに囲まれるbの個数が2個以上はNGで
1個限定ということなら前者の正規表現も更にカスタマイズが必要になるけど

188 :デフォルトの名無しさん:2012/08/15(水) 05:04:21.31
emacs-lispの正規表現でわからない点があるので教えてください。

Cソースコードの
#define
プリプロセッサにマッチさせるための正規表現で下記が良く使われているのですが

"^\\s-*#\\s-*define"

-
↑のマイナスって意味ってありましたっけ?
http://www.kt.rim.or.jp/~kbk/regex/regex.html
とかみてもそれらしいのが見つからないのですが・・・

#defineに一致させるためなのであれば
行頭のスペース任意数以上(0〜N回)#スペース任意数(0〜N)define
なので

"^\\s*#\\s*define"

とかで良いきがするのですが・・


189 :デフォルトの名無しさん:2012/08/15(水) 07:43:45.93
>>188
もう emacs 使ってないので、はずしてるかもしれないけど

EmacsLispの正規表現「\s」は空白文字類じゃない。
http://d.hatena.ne.jp/holidays-l/20070602/p1

じゃないの?

190 :デフォルトの名無しさん:2012/08/15(水) 08:18:54.14
>>189
> >>188
> もう emacs 使ってないので、はずしてるかもしれないけど
>
> EmacsLispの正規表現「\s」は空白文字類じゃない。
> http://d.hatena.ne.jp/holidays-l/20070602/p1
>
> じゃないの?
え・・・
マジすか・・
確かにコレなら上の構文は納得です。

ありがとうございました。

191 :デフォルトの名無しさん:2012/08/16(木) 19:24:13.57
javaですが、日本語などの全角文字を探す場合、ascii以外という発想で「[^\p{ASCII}]」や「.*[^ -~].*」を使っていますが、
もっとスマートな別な表現はあるでしょうか?

192 :デフォルトの名無しさん:2012/08/16(木) 20:43:41.61
>>191
java.lang.Character.UnicodeBlockで定義されてるものは使えるそうだけど。
全角というのは表示上のことだし、日本語で使うという風にも区切られていない。
HIRAGANA KATAKANA KANJIとかすると半角カナとかも含まれそう。

193 :デフォルトの名無しさん:2012/08/17(金) 00:29:42.79
ambiguousとかどうするよ?
わざわざ前後の文脈までみるのか?

194 :デフォルトの名無しさん:2012/08/17(金) 13:40:24.55
ruby初心者でテキスト処理初心者です
以下のテキストから「かきくけこ」を抜き出したいです
=テキスト=
(1)あいうえお
→かきくけこ
(2)さしすせそ
.scan(/あいうえお(.*?)さしすせそ/m)と書くと「→」と「(2)」が邪魔です
.scan(/あいうえお\n→(.*?)(2)さしすせそ/m)と書くと何も取り出せません
なぜうまくいかないのでしょうか

195 :デフォルトの名無しさん:2012/08/17(金) 13:46:06.59
カッコをエスケープしてないから \(2\)

196 :デフォルトの名無しさん:2012/08/17(金) 13:51:05.45
なるほど!ありがとうございます

197 :デフォルトの名無しさん:2012/08/17(金) 13:58:31.90
.scan(/あいうえお\n→(.*?)\(2\)さしすせそ/m)にしても何も取り出せませんでした…

198 :デフォルトの名無しさん:2012/08/17(金) 15:10:47.81
取り出し云々の前に、マッチするかよく確認するべきじゃないの。
例えばこんなの。
http://rubular.com/r/GfgQLaoQoT

199 :デフォルトの名無しさん:2012/08/17(金) 15:27:10.60
急がば三回まわってワンとお鳴き

200 :デフォルトの名無しさん:2012/08/17(金) 15:32:56.75
>>198
これだと>>197の書き方でうまくいく判定がされるのですが実際にプログラムを動かすとどこもマッチしないのです
\nのあたりに問題があるのでしょうか

201 :デフォルトの名無しさん:2012/08/17(金) 15:36:36.39
その人は、うまくいかない例でやってみてどうよ?って聞いてるんだよ

202 :デフォルトの名無しさん:2012/08/17(金) 15:53:41.75
できました!ありがとうございます

203 :デフォルトの名無しさん:2012/08/18(土) 23:12:39.31
h?t?tps?://.+
という定義ではすべてのURLがマッチしますが
http://www.hogehoge.jpg
といった画像リンクは除外するようにする定義を教えてください
h?t?tps?://.+(?!jpe?g|png|gif|bmp)
としてもうまくいきませんでした

204 :デフォルトの名無しさん:2012/08/19(日) 03:23:09.41
http://www.hogehoge.jpg
これが画像のURL??

まあそういう仕様ということで、こんな感じかな。
h?t?tps?:\/\/.+\.(?!(jpe?g|png|gif|bmp)(?=\s|$))[a-z]+(?=\s|$)

205 :デフォルトの名無しさん:2012/08/19(日) 08:17:42.50
どんなURLだw

206 :デフォルトの名無しさん:2012/08/19(日) 09:15:56.05
自分だったら複数回grepで実現するかな。

欲しい拡張子以外を、順次消していく(該当行を\r\nに置換)

207 :デフォルトの名無しさん:2012/08/19(日) 09:52:20.64
先読みと後読みを勉強すれば解決するな

208 :デフォルトの名無しさん:2012/08/19(日) 17:26:30.66
http://zasshi.news.yahoo.co.jp/article?a=20120819-00000784-davinci-ent
こういったURLにはマッチしないんですかね
ここで調べました
PHP正規表現チェッカー ver1.0.3
http://www.rider-n.sakura.ne.jp/regexp/regexp.php

209 :デフォルトの名無しさん:2012/08/19(日) 20:08:06.25
>>208
最初から十分な希望例を挙げて欲しいんだけど。おかしな例じゃなくてね。
環境も分からないし。テンプレ>>1-4も読んでね。
h?t?tps?:\/\/.+\.(?!(jpe?g|png|gif|bmp)(?=\s|$|\?))[^.\s]+(?=\s|$)

>PHP正規表現チェッカー ver1.0.3
これは正しく動作してるように思えない。以下をオススメする。
http://www.rexv.org/
http://rubular.com/
http://www.gethifi.com/tools/regex

210 :デフォルトの名無しさん:2012/08/19(日) 20:13:46.87
正しく動いていないというのはどういうところ?

211 :デフォルトの名無しさん:2012/08/19(日) 20:38:31.91
>>209
分かりました
スレ汚しすみませんでした

212 :デフォルトの名無しさん:2012/08/22(水) 17:33:42.49
「$」の直前に「'」がなく、さらに「$」よりも前に「#」が一切ない正規表現ですが、
以下だとエラーになってしまいます。

 (?<!^[^#]*)(?<!')\$

上記の正しい正規表現を教えていただけないでしょうか?

213 :デフォルトの名無しさん:2012/08/22(水) 17:53:09.25
[^#]*[^,#]\$
では駄目かどうか教えて。

214 :デフォルトの名無しさん:2012/08/22(水) 17:55:35.22
>>213
…すんません、ありがとうございます。
なんてばかだったか…

ちなみに戻り読み否定で「#.*」は使えないのでしょうか?

215 :デフォルトの名無しさん:2012/08/22(水) 18:04:00.12
可変長否定戻り読みとなると、使える環境は限られます

216 :デフォルトの名無しさん:2012/08/24(金) 15:14:46.73
簡単な質問かも知れませんがお願いします

「家具」を消すには /(家具)/ ですが
あくまでも例えですが「木目調家具」は消したくない場合はどのように書けばいいのでしょうか

217 :デフォルトの名無しさん:2012/08/24(金) 18:57:17.56
>>216
少し上のレスにもある否定戻り読みを使って
(?<!木目調)家具

218 :デフォルトの名無しさん:2012/09/11(火) 07:26:49.98
青空文庫の注記をエディタ類の置換でやろうと思うのですが

なんとか吹喋[#「喋」に「ママ」の注記]かんとか
   ↓
なんとか吹<ruby><rb>喋</rb><rp>(</rp><rt>ママ</rt><rp>)</rp></ruby>かんとか


\1[#「([^「」]+?)」に「([^「」]+?)」の注記]
とか後方参照は出来るエディタは無かったですね

やっぱり スクリプト組むしかないのかな

219 :デフォルトの名無しさん:2012/09/11(火) 16:55:28.27
オートマトンって何ですか?

220 :デフォルトの名無しさん:2012/09/11(火) 19:00:49.57
殴投魔団

221 :デフォルトの名無しさん:2012/09/11(火) 19:39:19.44
状態機械
http://ja.wikipedia.org/wiki/%E6%9C%89%E9%99%90%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3

222 :デフォルトの名無しさん:2012/09/12(水) 03:32:54.57

https://example.com/(abcABC123)/apple/(123456)
にはマッチして
https://example.com/(abcABC123)/apple/(123456)/orange/1
にはマッチしない、定義を教えてください。
()内は変動します。
https?://example\.com/[^/]+/apple/\d+
ですと、両方マッチするみたいですが、上だけにマッチするように手直しよろしくお願いします。

223 :デフォルトの名無しさん:2012/09/12(水) 04:08:54.24
最後に $ を付ける?

224 :218:2012/09/12(水) 07:13:43.25
結局 >>218 はWSH(VB)で

s = rfp.ReadText
  Set regEx = New RegExp
  Set reg2 = New RegExp
  regEx.Pattern = "[#「([^「」]+)」に「([^「」]+)」の注記]"
  regEx.Global = True
  Set Matches = regEx.Execute(s)
  For Each Match in Matches
  d1 = regEx.Replace( Match.Value,"$1" )
  d2 = regEx.Replace( Match.Value,"$2" )
  d = d1+ Match.Value
  reg2.Pattern =d
  s = reg2.Replace( s , "<ruby><rb>"&d1&"</rb><rp>(</rp><rt>"&d2&"</rt><rp>)</rp></ruby>")
  Next
wfp.WriteText s

とやりました

225 :デフォルトの名無しさん:2012/09/12(水) 07:32:51.85
>>224
ていねいな報告、ご苦労さまです。

226 :デフォルトの名無しさん:2012/09/12(水) 08:48:10.11
マッチさせた部分文字列が後にあるから、2度読みしないとたぶん無理だと思うからスクリプトで処理して正解だと思うよ

227 :デフォルトの名無しさん:2012/09/12(水) 14:29:55.98
>>223
ありがとうございます

228 :デフォルトの名無しさん:2012/09/15(土) 01:57:30.02
すみません、質問させて下さい

一括ファイル整理ソフト:Classifier
ttp://realize.jounin.jp/classifier.html

こちらのソフトを使い、正規表現で大量にあるファイルの整理を行おうとしております

【写真】[イベント名] [苗字名前] 詳細.jpg

こういった形式のファイルに対して、苗字の頭一文字目が『あ行』なら
あ行のフォルダへ移動、『い行』ならい行のフォルダへ移動、という
処理をさせようと、以下の正規表現を入力し実行しました

【[^】]*】\[[^\]]*\]\s\[[亜-音][^\]]*\].*

結果を見ると、仕分けは実行されたのですが、あ行以外の苗字の方もあ行
フォルダへ仕分けされてしまいました。

こちらのソフトは開発環境がVisualBasicで、内部的には2バイトのUnicode規格に
基づいているせいで、シフトJISの漢字コード(音読み)で仕分けるにはこの正規表現
では駄目との事でした。

Unicodeの正規表現でシフトJISコードの亜-音と同じ結果が出せる正規表現方法は
無いでしょうか?もしご存知の方がいらしたら教えて下さい

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

229 :デフォルトの名無しさん:2012/09/15(土) 04:46:24.97
あるかないかで言えばあるけどそんな単純じゃないよ

230 :デフォルトの名無しさん:2012/09/15(土) 12:56:11.80
ファイルが大量にあることは想像できました。
よくあるリネームではなく、特定フォルダーへの移動でしょ?
だったらdir結果をテキストエディターで1行ずつ
move ファイル名 読み仮名_あ_始まり\
って書いたら?

読みが「あ」で始まるかどうかは単なる漢字の音読み、訓読みでは判断できない場合が存在します。
人名だとどうしても人力で頑張るしかない場面だと思いましたがどうでしょうか。

自分だったら1,000人程度だったら空いた時間にしこしこ作業しますね。

231 :デフォルトの名無しさん:2012/09/15(土) 14:05:44.25
migemoでふりがな取得出来ないかな…

232 :デフォルトの名無しさん:2012/09/15(土) 14:33:45.73
>>231
kakashi

233 :デフォルトの名無しさん:2012/09/15(土) 19:45:32.48
これかー
http://kakasi.namazu.org/index.html.ja

234 :デフォルトの名無しさん:2012/09/15(土) 19:56:55.37
debianとかはパッケージに含まれてた気がする。<kakasi
hがあるかないかで良く見つからないけど。
文章をchasenで解析して単語をkakasiで読み順に並び替えてた記憶がある。

235 :デフォルトの名無しさん:2012/09/18(火) 10:21:00.35
たとえば河野と書いて「かわの」さんも「こうの」さんもいるのでkakasiでも
どうにもならないと思うけどなぁ。割り切れるならいいけど。


236 :デフォルトの名無しさん:2012/09/18(火) 11:24:02.90
お題はそんな読みを厳密にやる必要なくて、[亜-音]レベルの仕分けでいいんでしょ?

[亜唖娃阿哀愛(途中は略)音]って正規表現生成すれば?
Shift JISで↑こういう正規表現作ってから、(その方が生成プログラムが簡単なので)
Unicodeに変換すればいいよね。GUIのアプリなら、コピペするだけじゃないのかな?

237 :デフォルトの名無しさん:2012/09/18(火) 11:45:23.31
コレだけだけど、ア行の苗字の1/10もない気がする
亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷
安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣
謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭
院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲
荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円 
園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押
旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音

238 :デフォルトの名無しさん:2012/09/18(火) 13:13:07.21
あれま

239 :デフォルトの名無しさん:2012/09/18(火) 13:45:38.31
こういう事例見ると、ファイル名に全角カタカナでフリガナを持っとくのも有りだな。

240 :デフォルトの名無しさん:2012/09/18(火) 21:08:24.29
>>239
そのアイデア、正規表現関係ないけどファイル整理に便利そうだな。
いや、ファイル検索のときは正規表現使うから関係あるか。

241 :デフォルトの名無しさん:2012/09/18(火) 22:07:01.78
ファイル名に頼らないで、一行目に漢字とカナとローマ字入れとくとか、dbに入れといた方がよさそうだ。

242 :デフォルトの名無しさん:2012/09/19(水) 12:04:10.79
dbってlinuxコマンドのdb?

RDBMS(MySQLとかPostgreSQL)にファイル名用テーブルでも作っとけばいい感じはする。

243 :デフォルトの名無しさん:2012/09/19(水) 13:53:28.74
>dbってlinuxコマンドのdb?

Berkeley DBのことか

244 :デフォルトの名無しさん:2012/09/19(水) 20:47:28.90
複雑度によるけど、どっちでもいいんじゃない。ファイルシステムという単純なdbじゃ大変そうという話。

245 :デフォルトの名無しさん:2012/09/20(木) 01:32:09.66
>235
ニホンゴムズカシイデスネ

246 :デフォルトの名無しさん:2012/09/21(金) 12:01:12.94
>>245
英語でもPh-はF-と同じ発音だしKn-はしばしばKを発音しない。
読みで分類するからそういう問題に直面するわけで。
# じゃぁ読みで分類するのをやめようとなると、それはそれで別の問題があるけれど。

247 :デフォルトの名無しさん:2012/09/22(土) 23:39:02.10
ちょっと質問、null文字を検索したら全部ヒットするんだっけ?

248 :デフォルトの名無しさん:2012/09/22(土) 23:56:11.73
>>247の質問訂正
配列のデータすべてヒットさせるのは//ではなく/.*/の方がいいかな?

249 :デフォルトの名無しさん:2012/09/23(日) 00:03:06.22
配列ってどの言語の配列よ?
>>4のテンプレに従って環境書こうぜ

250 :デフォルトの名無しさん:2012/09/23(日) 00:21:34.93
>>249
ごめん、perlです

251 :デフォルトの名無しさん:2012/09/23(日) 00:27:38.76
>>250捕捉
ActivePerl5.14.2で配列を検索で、全データをヒットさせたい場合は
空文字列を検索でも全データがヒットするけど、きちんと.*を指定したほうが
いいのかと思っての質問

単純にperl5の環境で空文字列を検索したら全データヒットと定義されてるのか疑問に思った

252 :デフォルトの名無しさん:2012/09/23(日) 23:49:39.15
●正規表現の使用環境
Perl

●検索か置換か?
検索

●説明
文字列中の数字を配列の各要素に格納したい。以下のプログラムを作りました。
9がresultの先頭に入るのみなのです。このような場合splitを用いるのでしょうか?
$str = "TEST 0 1 2 3 4 5 6 7 8 9";
@result = $str =~ m/^TEST(?:\s(\d))+$/g;

253 :デフォルトの名無しさん:2012/09/23(日) 23:54:17.31
>>252はPerlスレに現れた荒らし
条件後出しするわブログでもないのに自分の行動予定書いていくわのマジキチ
スルーよろ

254 :デフォルトの名無しさん:2012/09/23(日) 23:55:58.14
>>253
情報サンクス。今真面目に回答書いて投稿前にリロードしたら書いてあって助かったよ。

ギリギリだったw

255 :252:2012/09/23(日) 23:56:15.93
別に荒らしのつもりじゃ無いので、判る人回答お願いします。

256 :デフォルトの名無しさん:2012/09/23(日) 23:57:09.54
>>252に回答しても後から情報出されてどうこう言われる

257 :デフォルトの名無しさん:2012/09/23(日) 23:58:28.49
一人粘着質のキチガイがいるけど気にしないでね

258 :デフォルトの名無しさん:2012/09/24(月) 00:04:52.12
>>252
自分で荒らすだけじゃ飽きたらず向こうの荒らしまで連れてきたのかよ

本当に迷惑だな

社会からさっさと消えればいいのに

259 :デフォルトの名無しさん:2012/09/24(月) 00:07:30.59
今まで質問しただけで、こんなに叩かれたことなかったんで…

260 :デフォルトの名無しさん:2012/09/24(月) 00:08:56.32
死ねよカス

261 :デフォルトの名無しさん:2012/09/24(月) 00:13:39.12
基地害>>252荒らしかた

暴れる奴の多いスレに釣り質問を投下する

条件を後だしする

初心者を免罪符にする

ブログ代わりにする

暴れてる奴がついてくるように次の行き先を明示

次のスレを荒らす←いまココ

262 :デフォルトの名無しさん:2012/09/24(月) 00:15:38.27
>>259
ここはテメーの愚痴スレじゃねーぞ精神障害
どんなks親に育てられたんだコイツ

263 :デフォルトの名無しさん:2012/09/24(月) 00:28:11.86
どうせ馬鹿が叩いてるだけだろうと思って一応回答は書き上げたが、
念のためにと思って元のスレ(どことは書かないけど分かると思う)
を見に行ってみたら、これは本物の釣りっぽいね。
どう見てもわざと煽ってるようにしか見えないし、万が一釣りじゃ
なかったとしても同じように後から注文つけられる可能性が高い。

264 :デフォルトの名無しさん:2012/09/24(月) 00:53:53.21
>>252が荒らしじゃないなら本気で頭おかしいと思う

しかも自覚なさそうだからかなりヤバい

265 :デフォルトの名無しさん:2012/09/24(月) 11:49:11.40
そういう時は、マルチと一言書くだけにしてください
個人的な感想はいらない

266 :デフォルトの名無しさん:2012/09/24(月) 13:29:22.30
マルチっていうか、機能不全に陥ってるスレで質問しちゃった人が
むりくり荒らし認定する人に絡まれて逃げてきたら、
余計な人も付いてきちゃったという流れ

267 :デフォルトの名無しさん:2012/09/24(月) 13:40:32.31
逃げるのにわざわざ行き先言って逃げるのか?w
どう考えても不自然

268 :デフォルトの名無しさん:2012/09/24(月) 14:02:19.45
マルチと言ったら「はわわ」と返すのがマ板の流儀だと思っていた

269 :デフォルトの名無しさん:2012/09/24(月) 15:05:04.06
???

ここはム板だぞ

270 :デフォルトの名無しさん:2012/09/24(月) 15:41:50.50
NullPointerException

すまん

271 :デフォルトの名無しさん:2012/09/24(月) 15:57:54.50
もうすぐ10がっ
http://www.youtube.com/watch?v=7sKs7INaEoA

272 :uy:2012/09/25(火) 03:48:48.13
板全体の荒れ方がひどいな
あと人の集まってるC++、C#スレあたり荒らしたら板終わるんじゃね

273 :デフォルトの名無しさん:2012/09/25(火) 05:44:16.46
>>272
Schme/LISP/関数型言語のtwitterでの書き込みは一日平均500を超えるようだけれど、
2chではほとんど0に近い。もうダメ的な状態ではないか。

274 :デフォルトの名無しさん:2012/09/25(火) 08:46:22.42
しかもまともな人に限ってTwitterにさっさと行ってしまってるしねぇ。

275 :デフォルトの名無しさん:2012/09/25(火) 09:31:51.61
(2chにまともな人材がいたとは)知らなかった

276 :デフォルトの名無しさん:2012/09/25(火) 09:45:30.85
いるとか、考え方が気持ち悪い

277 :デフォルトの名無しさん:2012/09/25(火) 10:46:56.83
>>273
おすすめのユーザー教えてくれ

278 :デフォルトの名無しさん:2012/09/25(火) 21:51:10.58
めんどくさいでしょ

279 :デフォルトの名無しさん:2012/09/26(水) 15:41:28.14
(Twitterに)まともな人材がいたとは知らなかった

280 :デフォルトの名無しさん:2012/09/26(水) 15:53:40.56
>>279
大学院生、准教授クラスがごっそり。

281 :デフォルトの名無しさん:2012/09/26(水) 16:05:29.43
>>279
関数型言語全体でいうと、大学生+院生+研究者だけで数千人いるのではないか。
一方、2chは珠に読む人を加えても100人にも満たない。


282 :デフォルトの名無しさん:2012/09/26(水) 16:13:05.03
昨年一年間に、関数型言語ではないが、プログラミングの話題として日本語でPrologとツイートした
人だけで延べでなく2400人いた。関数型言語全体だと多分その10倍以上。

283 :デフォルトの名無しさん:2012/09/26(水) 21:17:21.52
Prologダメだなとつぶやいたヒトがそんなに。

284 :デフォルトの名無しさん:2012/09/26(水) 21:57:03.68
>>283
よくご存知だね。Prologワカンネの方が多い。

285 :デフォルトの名無しさん:2012/09/26(水) 22:14:14.09
授業中にツイートするやつが多い


286 :デフォルトの名無しさん:2012/09/27(木) 06:57:40.26
>>282
Prologのプログラマ人口から考えると脅威のツイッター組織率だ


287 :デフォルトの名無しさん:2012/09/27(木) 07:01:05.56
>>286
驚異ではなくw

288 :デフォルトの名無しさん:2012/09/27(木) 12:02:56.50
スレ違いな話題が多すぎるんで、正規表現の話にせめて絡めたいんだけど、
正規表現で2chやtwitterとかを検索できるサイトとかアプリってないのかな?

まあそれ以前にGoogleやらBingやらYahooやらの検索サイトに正規表現検索機能が欲しいんだが、
一般ユーザーが必要としないマニアックな検索方法を提供する気はないんだろうな

289 :デフォルトの名無しさん:2012/09/27(木) 20:55:45.67
>>288
いちいち全文検索してるわけじゃなく、インデックスから引いているだけだからあまり意味ないんじゃないか。もしできても、利用者どれくらいだよ。否定やorも使われてないだろう。

290 :デフォルトの名無しさん:2012/09/28(金) 00:13:11.17
or はたしかに使わないけど、否定は使うだろ。

291 :デフォルトの名無しさん:2012/09/28(金) 00:34:45.14
コマンドオプションをそのまま貼って否定になってたりな。-help

292 :デフォルトの名無しさん:2012/09/28(金) 03:51:56.34
>>290
以前は、たとえば「インタフェース OR インターフェース」みたいな、
表記の揺れを吸収するためにときどき使ってたんだが、
いまのGoogleじゃ全部向こうで勝手に吸収してくれるからな。
「interface」すら検索してくれる。

293 :デフォルトの名無しさん:2012/09/28(金) 08:55:24.32
いんたーふぇすでも通る

294 :デフォルトの名無しさん:2012/09/28(金) 10:33:09.84
もしかして 朝鮮人

295 :デフォルトの名無しさん:2012/09/30(日) 21:25:19.20
ν速に帰れば?

296 :デフォルトの名無しさん:2012/10/01(月) 15:52:01.10
●正規表現の使用環境
C#

●検索か置換か?
検索

●説明
タグの外にある文字列を順に取り出したい

●対象データ
<hoge><hoge></hoge>あああ<hoge><hoge></hoge>いいい<hoge></hoge>ううう<hoge><hoge>・・・

●希望する結果
while (m.Success)
の繰り返しの中であああ、いいい、ううう・・・と順に取り出していきたい

よろしくお願いします。

297 :デフォルトの名無しさん:2012/10/01(月) 15:59:13.26
どれもタグの中にあるように見えます。 タグ以外ということでしょうか?

298 :デフォルトの名無しさん:2012/10/01(月) 16:04:40.91
タグ以外ということでOKです。あと改行が含まれているのでその辺はどうなるでしょうか?

299 :デフォルトの名無しさん:2012/10/01(月) 16:27:06.78
対象データがダメダメじゃん。

300 :デフォルトの名無しさん:2012/10/01(月) 16:55:21.70
まあ、タグの定義を細かくやると書ききれない話になるので、
var list = from x in System.Text.RegularExpressions.Regex.Split( text,"<.*?>", System.Text.RegularExpressions.RegexOptions.Singleline) where x!="" select x ;
程度でいいのならこれで。


301 :デフォルトの名無しさん:2012/10/02(火) 09:54:42.29
よろしくお願いします。

●正規表現の使用環境
サクラエディタ bregonig.dll Ver.3.02

●検索か置換か?
検索

●説明
"START"から"END"に囲まれた"HOGE"を最短一致(というのか?)で含まれる行を検索したい

●対象データ
1.xxxxxxxSTARTyyyyyyyyHOGEzzzzzzzzzzzENDaaaaaaa
2.xxxxxxxSTARTyyyyyyyyENDbbbbbbbHOGEzzzzzzzzzzzENDaaaaaaa

●希望する結果
1.だけマッチ
2.は"END"が"HOGE"の前に入ってるのでマッチ対象外

302 :デフォルトの名無しさん:2012/10/02(火) 10:40:02.40
1の小文字部分にENDがないものと解釈した場合
^((?!END).)*?START((?!END).)*?HOGE((?!END).)*?END((?!END).)*?$

303 :301:2012/10/02(火) 12:16:03.97
>>302
ありがとうございます。
なるほど、((?!END).)*?の部分がポイントですね。

えと、すみません説明が不十分でした。
・1.の"yyyyyyyy"部分以外の小文字部分いずれかに"END"があってもマッチ
・1.の"zzzzzzzzzzz"部分に"END"があればそこまで(最短で)マッチ
・1.の小文字部分いずれかに"START"があっても"START〜HOGE〜END”の最短パターンでマッチ
・1.と2.の複合(1.の後ろに2.のパターンとかその逆とか)の場合でもマッチ
(条件がまだ足りてなかったり、冗長だったりするかもしれませんが)の場合は、レスの答えを参考に

START((?!END).)*?HOGE.*?END

として試してるところですが、これで良いのかな?

304 :デフォルトの名無しさん:2012/10/02(火) 12:48:40.42
>>303
条件を満たす行だったので 

START((?!END).)*?HOGE.*?END
は STARTとHOGEの間にENDがなくHOGEの後ろにENDが少なくともひとつある
つまり、このマッチする部分の前か後ろ、HOGEとENDの間に
*STARTとHOGEの間にENDがある部分* があっても良ければそれで

305 :301:2012/10/02(火) 14:59:07.75
>>304
> 行だったので 
あぁー!自分で「行を検索」と書いてました。すみません。正確には「部分を検索」です。

> このマッチする部分の前か後ろ、HOGEとENDの間に
> *STARTとHOGEの間にENDがある部分* があっても良ければそれで

えと、波下線(~~~)をマッチ対象部分とすると、
a. このマッチする部分の前か後ろに *STARTとHOGEの間にENDがある部分*がある
 a-1:STARTaaaaaENDbbbbbHOGEcccccSTARTdddddHOGEeeeeeEND (前にある場合)
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 a-2:STARTaaaaaHOGEbbbbbENDcccccSTARTdddddENDeeeeeHOGE (後ろにある場合)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
b. HOGEとENDの間に *STARTとHOGEの間にENDがある部分* がある
 b-1:STARTaaaaaHOGEbbbbbSTARTcccccENDdddddHOGEeeeeeEND
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a,bいずかでも良ければ、と解釈しました。
a,bとも下線のように、期待通りにマッチしていますが、
誤解とか頓珍漢な事を言ってるようなら、何なりと指摘してください。
国語が苦手なうえに回転が悪くてスミマセン(´・ω・`)

306 :デフォルトの名無しさん:2012/10/02(火) 15:13:22.64
STARTaaaaaHOGEbbbbbENDcccENDで最短にならないぐらいかな

307 :301:2012/10/02(火) 15:18:10.19
連投スミマセン。

START((?!END).)*?HOGE.*?END
を使っていろいろやってみてる最中ですが、(波下線部分がマッチ対象部分)

xxxxxxxSTARTyyyyyyyyHOGEzzzzzzzzzzzSTARTaaaaaaHOGEbbbbbbbENDcccccccc
    a~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         b~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
上のケースでは、aの部分がマッチしてしまうようです。
bの部分をマッチさせたかったのですが…

START((?!END).)*?HOGE((?!START).)*?END
"HOGE"と"END"の間に"START"は無しを条件にすればと
解らないなりに、こうか?wとやってみたのですが、結果は変わりませんでした_ノ乙(、ン、)_

308 :デフォルトの名無しさん:2012/10/02(火) 15:21:24.72
その場合は、 ((?!END).)*?  が  yyyyyyyyHOGEzzzzzzzzzzzSTARTaaaaaa にマッチするので

309 :デフォルトの名無しさん:2012/10/02(火) 15:31:58.02
START HOGE ENDの間に許容される条件が分からないので・・・

START((?!START|HOGE|END).)*?HOGE((?!START|HOGE|END).)*?END だと?


310 :301,303,305,307:2012/10/02(火) 17:21:33.52
レスありがとうございます。
相変わらずの長文でゴメンナサイ

>>306
えと、こちらの環境だと
STARTaaaaaHOGEbbbbbENDcccEND と最短でマッチしています…
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>308
> ((?!END).)*?  が  yyyyyyyyHOGEzzzzzzzzzzzSTARTaaaaaa にマッチするので
HOGE.*?ENDの部分で短めにマッチするからということですかねムツカチ━━━(;´д`)━━━イィィ

>>309
ぉおおっ!
> START((?!START|HOGE|END).)*?HOGE((?!START|HOGE|END).)*?END だと?
を見てなんとなくわかったような気がしてるような気がします。

> 許容される条件が分からないので・・・
ずびばぜん。゚(。ノωヽ。)゚。まとめます。>>303みたいに書かずに

*マッチ対象部分では*
1)"START"と"END"の間は、"START"と"END"は出現しない
2)"HOGE"は一つ以上出現しても良い

でよいのかな?やっぱりなんか混乱してるかも…σ(・´ω・`;)アハアハアハ ということで、
START((?!START|END).)*?HOGE((?!START|END).)*?END
こうですかね?これで様子を見ます。本当にありがとうございました。

311 :sage:2012/10/08(月) 18:38:19.35
●正規表現の使用環境
練馬、nemery等のリネームソフト
可能なソフトに乗り換えようと思ってます

●検索か置換か?
置換

●説明
1.ファイル名末尾の数字が1桁の場合、0をつける。2桁の場合はそのまま
 ファイル名途中の数字はスルーさせたい
2.特定の文字(例では#)から特定の文字(例では-)の前までを削除したい

●対象データ
キリン#◯☓動物園-10月1
しろくま#△☓◯動物園-5月12
猫(2匹目)#我が家-11月5

●希望する結果
キリン-10月01
しろくま-5月12
猫(2匹目)-11月05

よろしくお願いします

312 :デフォルトの名無しさん:2012/10/08(月) 19:12:51.17
練馬 SJIS版

s/(?<![0-9])([0-9]{1})$/0\1/k


s/#.*-/-/k

313 :デフォルトの名無しさん:2012/10/08(月) 20:02:16.41
>>312
ありがとうございます
練馬で頑張ってみますね

314 :デフォルトの名無しさん:2012/10/11(木) 18:53:52.96
tで始まる文字列を文頭のthe[スペース]を無視して検索する場合
^t[^h]|^th[^e]|^the tが思いついたけど、もっといい正規表現ありますか?

環境はActive Perl5で否定演算子!は使えません

315 :デフォルトの名無しさん:2012/10/11(木) 18:59:56.47
>>314の訂正
×^t[^h]|^th[^e]|^the t
○^t[^h]|^th[^e]|^the[^ ]|^the t

×の正規表現だと"there"とかがヒットしなくなってしまう。失礼しました

よろしくお願いします

316 :デフォルトの名無しさん:2012/10/11(木) 20:17:23.53
lookbehindが使えないって意味じゃないよな?

(?<!^the )t

317 :デフォルトの名無しさん:2012/10/11(木) 21:09:22.06
>>316
レスありがとうございます
(?<!^the )tを使ってみましたがうまくいきませんでした

lookbehindは知りませんでした、勉強していろいろ試してみようと思います

318 :デフォルトの名無しさん:2012/10/11(木) 21:35:20.97
(?!^the\b)\bt\w+

こう?

319 :デフォルトの名無しさん:2012/10/11(木) 21:51:37.73
/(?!the )t\w+/
これだと末尾のtheという単語拾うけど

320 :デフォルトの名無しさん:2012/10/11(木) 21:55:51.23
>>318
たびたびすいません

それもうまくいきませんでした。文字列の途中の"t"もヒットしているようです
"abc this def"とかもヒットして"t"で始まる文字列のみのヒットにはなってないです

321 :デフォルトの名無しさん:2012/10/11(木) 22:18:05.08
>>320
文頭のtheを除くtで始まる語全てを拾うようにした(=そうなるようにした)んだけど
ものすごく要件読み違えてたのか

322 :デフォルトの名無しさん:2012/10/11(木) 22:31:43.65
>>321
"文頭のtheを除くtで始まる語全てを拾う"でいいんですけど
僕の環境だと(?!^the\b)\bt\w+でもうまくいかないんです
やりたいことは"the abc"とかは排除して"the tuv"や"there"や"tabc"とかはヒットさせたいということです

配列の各文字列を検索してるんですが、配列には"abc this def"や"abc the def"
とかも入ってます

323 :デフォルトの名無しさん:2012/10/11(木) 22:38:34.31
^(?!the\b)t\w+
こうなのか?

324 :デフォルトの名無しさん:2012/10/11(木) 22:47:53.42
>>323
それでほぼヒットしたんですが、"the t"で始まる("the "の後に"t"で始まる)
文字列だけがヒットしてないです

たびたびすいません

325 :デフォルトの名無しさん:2012/10/11(木) 22:49:02.16
>>322
うーん自分は"文頭のtheを除くtで始まる語全てを拾う"だと思ったから

> "abc this def"や"abc the def"

このthisやtheにもマッチさせてたんだよ

"the tuv" は tuv でマッチすべきだけど
"abc tuv def" なら tuv にはマッチしちゃいけないのか

326 :デフォルトの名無しさん:2012/10/11(木) 22:53:18.24
^(?:(?!the\b)t\w+|the t\w+)

>>323-324を見たらこうなったけど要件はわかってない

327 :デフォルトの名無しさん:2012/10/11(木) 23:01:51.10
>>325
わかりにくくてすいません
配列内の文字列全体で"文頭のtheを除くtで始まる語全てを拾う"であって
ワード単位で"文頭のtheを除くtで始まる語全てを拾う"ではありませんでした

"abc tuv def"はマッチさせません。あくまで配列内の文字列全体で"t"で始まるです
配列内の文字列の最初が"t"で、最初の"the "は無視するということです

328 :デフォルトの名無しさん:2012/10/11(木) 23:08:33.82
>>324訂正
"the t"で始まる("the "の後に"t"で始まる)文字列だけでなく
"t'abc"や"t.a.b.c"などがヒットしてなかったです

>>326
レスありがとうございます
"the t"で始まる文字列もヒットしましたが、"t'abc"や"t.a.b.c"などがヒットしていないです

329 :デフォルトの名無しさん:2012/10/11(木) 23:12:26.40
\w はおせっかいだったのか

^(?:(?!the\b)t|the t)

330 :デフォルトの名無しさん:2012/10/11(木) 23:17:51.66
"the the"の場合は?

331 :デフォルトの名無しさん:2012/10/11(木) 23:21:45.68
>>329
ありがとうございます。すべてヒットしました

正規表現は初心者で"|"を多数使って力技でヒットさせてました
もっと正規表現の勉強が必要だと痛感しました

>>330
それは想定していませんでしたw
最初の"the "だけを無視ということで・・・

332 :デフォルトの名無しさん:2012/10/11(木) 23:33:28.55
t.A.T.u.
最初からテンプレに沿って例題集を提示して欲しかったな。>>311みたいに。
今度からはそうして。

…thereだけでなくthe:4にもヒットしてくれとか、もう言わないよね?

333 :デフォルトの名無しさん:2012/10/11(木) 23:39:21.03
ちょw
>>331
否定演算子!を使えなかった理由は?

334 :デフォルトの名無しさん:2012/10/11(木) 23:40:21.32
>>332
拙速な質問ですいませんでした。以後気をつけます

the:4はヒットしなくていいです
どうもありがとうございました

335 :デフォルトの名無しさん:2012/10/11(木) 23:45:15.76
>>333
理由はわかりません。僕の環境では/^t!h/で検索してみても"tuv"や"true abc"
などがまったくヒットしないです

336 :デフォルトの名無しさん:2012/10/11(木) 23:51:00.06
>>335
Perlの否定演算子って、 !~ とかを指してるんじゃなかったのかw
そりゃ無理っしょ

337 :デフォルトの名無しさん:2012/10/11(木) 23:55:30.32
>>336
すいません、perlも最近使い始めたばかりであまりよくわかってないです
勉強してみます

338 :デフォルトの名無しさん:2012/10/12(金) 21:35:10.48
/\*[^*]*\*+([^/*][^*]*\*+)*/

Cのコメントをとりのぞく
詳説 正規表現
p.192
p.326

339 :こんまけ:2012/10/13(土) 10:48:59.23
\*+の後なら[^*]なので。
/\*[^*]*\*+([^/][^*]*\*+)*/
じゃダメな理由とか例は出せられます?

340 :デフォルトの名無しさん:2012/10/13(土) 12:06:56.17

339のだと/****/*/みたいのにもマッチできるので良くない。
単独でマッチさせるだけだと普通の正規表現エンジンなら
/****/の部分まででマッチしちゃってそっから先には行かない
けど、他の正規表現を前後につけると違いが出てくると思う。

例えば全体を^と$で挟むとか。

341 :デフォルトの名無しさん:2012/10/13(土) 13:25:10.54
コンパイラの構文解析機を使うのが確実。自分のコーディングルールだけで使うなら、自分のツールボックスにしまっておけばいい。

342 :339:2012/10/13(土) 15:38:32.78
れすさんくす、
338 も 339 もベストじゃなくて、339 が 338 よりベターなんですね。
例えば、コメントの後ろにAという文字がある場合を検索したいとか…

343 :デフォルトの名無しさん:2012/10/13(土) 20:26:20.34
AAA : BBBB CCCC DDD1[0] DDD2[1] DDD3[2] DDD4[3]
がある場合にDDD1[0] DDD2[1] DDD3[2] DDD4[3]のみ取得したい。
もしくはAAA : BBBB CCCC を削除したいです。
よろしくお願いします。

344 :デフォルトの名無しさん:2012/10/13(土) 20:54:07.95
>>343
DDD\d\[\d\]

345 :デフォルトの名無しさん:2012/10/13(土) 21:38:35.67
環境書かない方も悪いけど、互換性低い\dで回答するのはどうなんだろう

346 :デフォルトの名無しさん:2012/10/13(土) 21:47:54.77
正規表現における
#
ってどんな意味を持つのですか?

347 :デフォルトの名無しさん:2012/10/13(土) 21:50:54.31
>>346
#

348 :デフォルトの名無しさん:2012/10/13(土) 21:59:51.01
>>345
ごめん。 \d=[0-9]

質問から察するに、数字部分は可変だろうね。

349 :デフォルトの名無しさん:2012/10/13(土) 22:00:36.84
>>346
特に意味なし。単なる「#」という文字。

350 :デフォルトの名無しさん:2012/10/13(土) 22:05:33.99
>>347
>>349
ありがとうございます

351 :デフォルトの名無しさん:2012/10/13(土) 22:07:23.75
>>345
\dが[0-9]でないのって、どんなのがあるの?

352 :デフォルトの名無しさん:2012/10/13(土) 22:22:42.43
>>351
秀丸はバージョン7あたりまで\dとか\sあたりが使えなかった

grepとかsedコマンドとかviエディタ内の正規表現とか
まあこの辺になってくると()や|の前にバックスラッシュつけないと
正規表現として機能しないという点でも非互換だけどもw

353 :デフォルトの名無しさん:2012/10/13(土) 22:37:04.96
>>351
鬼車や鬼雲の\dは[0-90-9]と等価
Ruby 1.9系の正規表現エンジンは鬼車だけどカスタマイズされたフォーク版なので、\dを [0-9]と等価になるように修正してある

354 :デフォルトの名無しさん:2012/10/13(土) 23:25:52.84
>>352 なるほど。
古めのエンジン、正規表現の源流に近いあたりでは\dは無いのね。
しかし秀丸バージョン7って、かなり最近じゃ。ちょっとひどいな。

>>353 そうなのかー。
先進的すぎても主流との互換性の点で問題あるよね。

355 :デフォルトの名無しさん:2012/10/13(土) 23:41:43.03
>>353
>鬼車や鬼雲の\dは[0-90-9]と等価
うお、なんかイメージよりも範囲広すぎ。
敢えて[0-9]って書いといた方が無難なのね。

356 :デフォルトの名無しさん:2012/10/13(土) 23:51:08.46
>>353
鬼雲は(?u),(?a)でUnicodeの範囲かASCIIの範囲かを制御できる。
\d,\s,\wがUnicodeの範囲でマッチするのはPerlに合わせた仕様。

357 :デフォルトの名無しさん:2012/10/24(水) 21:11:42.58
●正規表現の使用環境
MSVC2012 / .NET Framework 4.5

●検索か置換か?
検索

●説明
「|」「(」「)」が文字として入っているデータから、特定の文字列を抜き出したい。

●対象データ
area|name (value)

tokyo|yamada benzo (123)
kyoto|namae tarou (21)
saga|shitemo mitukaranai you (7)

●希望する結果
area, name, value

"tokyo", "yamada benzo", "123"
"kyoto", "namae tarou", "21"
"saga", "shitemo mitukaranai you", "7"

このように取り出したいのですが、どのように書くとよいでしょうか

358 :デフォルトの名無しさん:2012/10/24(水) 21:20:10.28
カッコの整合を取りたいのでなければ
"tokyo|yamada benzo (123)".Split(new char[] { '|', '(', ')' },StringSplitOptions.RemoveEmptyEntries)
でよかったりしない?

359 :デフォルトの名無しさん:2012/10/24(水) 22:06:41.28
>>358
あ、本当ですね…。
このやり方のほうがさっぱりしてていいですね。
こちらでやらせてもらいます。
解決できちゃいました。
どうもありがとうございました。

360 :デフォルトの名無しさん:2012/11/01(木) 12:21:53.25
あー!
正規表現で空白を縮めればいいのか

361 :360:2012/11/01(木) 12:23:30.20
すみません自己解決しました

362 :デフォルトの名無しさん:2012/11/06(火) 14:38:40.09
「CDATA」を含まない行を検索したいのですが、先読み否定を使用しましたがうまく検索できませんでした。
 ^(?!.*?CDATA)

指定文字列を含まない行をどのような指定で検索できるでしょうか?

363 :デフォルトの名無しさん:2012/11/06(火) 14:42:14.02
つ[grep -v]

364 :デフォルトの名無しさん:2012/11/06(火) 14:48:45.45
>>362
自己レス

Java → ×
サクラエディタ → ○

Javaの問題?

365 :デフォルトの名無しさん:2012/11/06(火) 15:13:49.63
^((?!CDATA).)*$

366 :デフォルトの名無しさん:2012/11/09(金) 22:58:08.67
●正規表現の使用環境
perl5
●検索か置換か?
置換
●説明
keyとvalueの間はコロン区切り、keyとvalueのペアの間はカンマ区切りになっている
key1:value1,key2:value2,key3:value3 という形式で書かれている文字列で、
指定したkeyに対応するvalueの値を取得したい。
 ・valueの文字列にはコロンやカンマが入っている可能性があるので、それを区切り文字にはできません。
 ・valueの文字列は、:value:や,value,のように、先頭や末尾がコロンやカンマの可能性があります。
 ・key3:value3,key2:value2,key1:value1 のように順番は変わる可能性があります。
 ・keyとvalueのペアは、何個あるかはわかりません。0個の場合もあり。
 ・指定するkey以外のkeyについても、何があるかはわかりません。
 ・keyもvalueも可変長で、valueが空という場合もあります。
●対象データ
AAA:V,:1,BBB:V,,::2,CCC:V,,,:::3,DDD:,V4:,EEE:
●希望する結果
AAAをkeyとすると、V,:1
BBBをkeyとすると、V,,::2
CCCをkeyとすると、V,,,:::3
DDDをkeyとすると、,V4:
EEEをkeyとすると、空
FFFをkeyとすると、空

3日くらい試行錯誤してますが、全然解決できず気が狂いそうです・・・
完全に、論理的に無理ゲーでしょうか?

367 :デフォルトの名無しさん:2012/11/09(金) 23:36:12.98
値(orKey)にデリミタがエスケープ無しで出るなら区別できないんじゃね?
例に挙げているのでも
 DDD=空
 V4=空
 EEE=空
と言う解釈も出来る(FFFは存在しないKey)

368 :デフォルトの名無しさん:2012/11/09(金) 23:40:02.61
>>366
素直にsplitしたら負け?

369 :デフォルトの名無しさん:2012/11/10(土) 00:32:09.53
デリミタ制限してないなら無理ゲーだろ
V,:1,BBB:V,,::2,CCC:V,,,:::3,DDD:,V4:,EEE:
たとえば↑これ全体がAAAのvalueならどこで切れるんだよ

370 :デフォルトの名無しさん:2012/11/10(土) 02:57:15.54
> DDDをkeyとすると、,V4:

これは何故なんだ?書かれてる条件だけ見ると
>>367が書いてる通り DDD=空 になるように思える
そこが明確にならなければ正規表現使うどころか
実直に一文字ずつパースしても無理に思える

371 :デフォルトの名無しさん:2012/11/10(土) 03:57:23.97
手作業でやっても一意に決まらないようなのはどうしようも無いぞ

372 :デフォルトの名無しさん:2012/11/10(土) 12:21:33.25
正規表現がどうのより、データの出力形式を見直したほうがいいな。
表計算ソフトのCSVの出力形式とか参考にしてさ。

正直、正規表現の出番以前の問題だよ。まずは論理的で明確なデータを用意するべき。

373 :366:2012/11/10(土) 21:43:20.41
>>367, 368, 369, 370, 371, 372
たくさんのレス、アドバイスありがとうございます。お礼が遅くなりすみません

>>367, 369
やはり、デリミタが値の中に出てくる時点で、無理なデータぽいですよね。
>>368
splitするにも、カンマがデータ中に出てきたりするもので・・・
>>370
「,V4:」という部分が、データなのです。この場合のカンマは、デリミタではなく値でして・・・
>>371, 372
やはり、論理的に矛盾したフォーマットですよね・・・

結論として、とりあえずsplitでパースしたものがだいたい正常になるので、後は目視・手作業でやることにしました。
無茶苦茶なフォーマットのデータを置いて行った前任者を恨みます・・・

374 :デフォルトの名無しさん:2012/11/10(土) 21:51:25.57
, と : がデータの一部として使われるときにある程度の規則性があるならそれを利用して判別
するといいかもね。まぁこれにも限界があるし誤爆の可能性もあるから目視は必須だけどね。

375 :デフォルトの名無しさん:2012/11/10(土) 22:08:21.52
前任者がキ印とかカワイソス

376 :デフォルトの名無しさん:2012/11/11(日) 01:40:44.89
目視で決められるのなら何か規則性があるんじゃないの?
キー名だと分かる何かが?

377 :デフォルトの名無しさん:2012/11/11(日) 01:44:41.01
値に隠された制約があるはず。 でなければ目視で出来ない。

378 :デフォルトの名無しさん:2012/11/11(日) 18:42:00.12
わからない時は古くからいる人に聞く、
これも「目視」のうちに入るのかもしれんしな。

379 :デフォルトの名無しさん:2012/11/11(日) 20:50:46.82
>>376
文脈で判断だと、規則が膨大になりすぎるんじゃない。

380 :デフォルトの名無しさん:2012/11/11(日) 22:40:27.53
●正規表現の使用環境
perl

●検索か置換か?
置換

●説明
1文字だけのAを空白に置換(または削除)したい

●対象データ
appleAisAdeliciousAAA

●希望する結果
apple is deliciousAAA

前後に同じ文字が連続していない場合、その文字だけを消したいです。

381 :デフォルトの名無しさん:2012/11/11(日) 22:53:00.61
先頭のaも消してよければコレ
(?<!a)a(?!a)

382 :デフォルトの名無しさん:2012/11/11(日) 22:54:55.34
あ、大文字だけか。
perlはよくわからんけどオプションかなんか指定して
aをAにすりゃたぶん大丈夫

383 :380:2012/11/11(日) 23:15:05.09
>>382
ありがとうございます。
先頭にAがあると消えてしまいますが、教えて頂いた方法でできました。
$string =~ s/(?<!A)A(?!A)//g; という文です。

できれば、先頭のAが消えないパターンが理想なので、
引き続きアドバイスを募集させてください。

384 :デフォルトの名無しさん:2012/11/11(日) 23:27:49.74
んじゃ、これでは?
(?<!^|A)A(?!A)

385 :デフォルトの名無しさん:2012/11/12(月) 00:15:19.92
>>384
ありがとうございます。
ただ、こちらの表現は「Variable length lookbehind not implemented in regex」
というエラーになって実行できませんでした。

どうやら、戻り読み?というものに対応できていないようです。
環境を書き忘れましたが、xammpを入れてperl 5.16.1で実験してます。

386 :デフォルトの名無しさん:2012/11/12(月) 03:15:42.78
もっと原始的に、これはどうか。
(^|[^A])A([^A]|$)
\1 \2
\1\2

ただ、よく分からないのは
>前後に同じ文字が連続していない場合、その文字だけを消したいです。
文字? 置換対象はAだけだよね?

387 :デフォルトの名無しさん:2012/11/12(月) 03:20:51.76
あれ、>>383をよく読んでなかった。

>先頭のAが消えないパターンが理想
条件追加/変更なら改めて例示をやり直してくれるとありがたいんだけど。

これならいいかな?
([^A])A([^A]|$)

388 :デフォルトの名無しさん:2012/11/12(月) 07:19:30.62
(?<!^)(?<A)A(?!A)

389 :デフォルトの名無しさん:2012/11/12(月) 10:32:08.35
( ´д)ヒソ(´д`)ヒソ(д` )

390 :388:2012/11/12(月) 11:02:29.20
すまん。!が抜けてた。(?<!A)

391 :デフォルトの名無しさん:2012/11/12(月) 16:00:51.00
テストしてから書き込んでないってのがよく分かるな。せめて動作確認してから貼れよ。

392 :デフォルトの名無しさん:2012/11/12(月) 18:33:07.61
ちょっとかっこ悪い

(?<=.)(?<!A)A(?!A)

393 :デフォルトの名無しさん:2012/11/12(月) 18:52:46.82
戻り読みより\K使えよ
固定長の必要なくなるぞ

394 :デフォルトの名無しさん:2012/11/12(月) 20:55:01.12
perlなら文字列操作関数で頑張ればいいのに。人に聞けばいいや、はイカン。

395 :デフォルトの名無しさん:2012/11/15(木) 14:27:21.57
同じ英数字が4文字以上、の正規表現は(a{4,}|b{4,})…と地道に指定しないとダメでしょうか?

396 :デフォルトの名無しさん:2012/11/15(木) 15:29:29.79
●正規表現の使用環境
php

●検索か置換か?
置換

●説明
2文字目以降の「.」以外の数字を「*」に置換したい。

●対象データ
12.34

●希望する結果
1*.**

397 :デフォルトの名無しさん:2012/11/15(木) 19:52:54.79
>>395
([a-zA-Z0-9])\1{3,}

398 :デフォルトの名無しさん:2012/11/15(木) 21:00:56.65
>>396
\G使え。

399 :デフォルトの名無しさん:2012/11/18(日) 11:15:26.52
●正規表現の使用環境
jruby1.7.0

●検索か置換か?
検索

●説明
<abc def/>とあるようなタグを検索したい

●対象データ
<bbb><aaa><abc/></aaa></bbb>

●希望する結果
<abc/>

タグ内の文字列は記号を含んだ任意の文字列です
<.*?\/> とすると
<bbb><aaa><abc/> とか
<aaa><abc/> とかでヒットするのでどうにか
<abc/> だけでヒットさせることができないものでしょうか?

400 :デフォルトの名無しさん:2012/11/18(日) 11:21:39.09
その説明だと

/<abc&yen;/>/

でいいんじゃねーのとしか読めないなw

401 :デフォルトの名無しさん:2012/11/18(日) 11:41:03.34
ほれ

<[^<]*\/>

例であげてた<.*?\/>の?はなんか意味あるの?

402 :デフォルトの名無しさん:2012/11/18(日) 11:44:52.55
質問者の環境で使えるかどうかは知らんが最小マッチな

403 :デフォルトの名無しさん:2012/11/18(日) 12:03:56.89
>>401
できましたありがとうございます!
^は行頭の意味で覚えていたので思いつきませんでした…
?は一応、後ろの方に対して最小一致のつもりでした

404 :デフォルトの名無しさん:2012/11/18(日) 12:37:00.59
量指定子のオプション ? が「ものぐさマッチ」である好例だね。
最小/最短という言葉だと、一番短くなる箇所でマッチするのかと誤解して覚えてしまう。

本当の最短マッチを探索する環境もあったような?

405 :デフォルトの名無しさん:2012/11/18(日) 13:32:55.34
あー最小一致か。あったね、そういえば。
(個人的には)あんまり使わないからすっかり忘れてた

406 :デフォルトの名無しさん:2012/11/18(日) 14:56:08.36
xxxは長さも値もランダムな文字列で

hoge+xxx/fuge+xxx/test+xxx

hoge+xxx/fuge+xxx や hoge+xxx/test+xxx や fuge+xxx/test+xxx
としたいのですが、例えばfuge+xxx/test+xxxとしたいとき
hoge.+(/)?とやるとfugeもtestも削除されてしまうんですがどうすればいいのでしょうか?
.に/も含まれてしまうのが問題だと思うのですが

407 :デフォルトの名無しさん:2012/11/18(日) 15:01:22.03
>>406
環境書いて欲しいところだが「.+」の代わりに
[^/]+

[^\/]+
でどうよ?

408 :406:2012/11/18(日) 15:13:14.89
>>407
できました!ありがとうございます!
その考え方は無かったです

409 :407:2012/11/18(日) 15:36:08.79
>>408
どういたしまして
ところで>>399>>406は同一人物?

410 :406:2012/11/18(日) 15:38:57.16
自分はphpでしたが似てますね
もっとよーく見てから質問するべきでした

411 :407:2012/11/18(日) 16:20:51.12
>>410
同一人物でなかったのならお気になさらずに

さすがに同一人物だったら>>401の意味を自分で理解しようよって感じでしたが

412 :デフォルトの名無しさん:2012/11/19(月) 12:25:00.01
Windows用で正規表現に対応したファイル検索ソフトってありませんか?

413 :デフォルトの名無しさん:2012/11/19(月) 12:28:56.30
たくさんあるよ。

414 :デフォルトの名無しさん:2012/11/19(月) 18:10:37.09
コマンドプロンプトからperlやphpでも行けそう。
フリーソフトなら腐るほどありそう。

415 :デフォルトの名無しさん:2012/11/19(月) 22:47:26.62
>>396
対象データって小数点以下がある数字?
それともIPアドレスみたいに . が複数存在する場合もある?

00.1 ←数字ではあり得ない並び
1.2.3 ←ピリオドが2つ以上あるデータ
1.2. ←ピリオドで終わるデータ

こういうデータは置換対象にする?しない?

416 :デフォルトの名無しさん:2012/11/20(火) 10:31:38.08
↑今日中に応答がない場合はもうこのスレ開くことないと思うのでご了承ください。。

417 :デフォルトの名無しさん:2012/11/20(火) 16:30:04.26
正規表現使うべき所じゃないよねぇ

418 :デフォルトの名無しさん:2012/11/20(火) 17:13:22.83
s/(?!^)[^.]/#/g

419 :デフォルトの名無しさん:2012/11/20(火) 18:43:16.52
>>417
いえ、普通に使えるケースです。

>>418
これだと数字とピリオド以外の文字がデータに存在した場合、意図しない動作になってしまいます。
(文頭に半角スペースが入った場合など)

420 :デフォルトの名無しさん:2012/11/20(火) 19:01:50.50
小出しェ

421 :デフォルトの名無しさん:2012/11/20(火) 20:06:03.18
シェルスクリプトスレより誘導されてきました

以下のような文章があったとします
〜aaa〜bbbaaa〜bbbaaa〜bbb〜
(〜は文字数の定まっていない文字列を表しています。)
ここから、それぞれ最初のaaa〜bbbだけを抽出、真ん中のaaa〜bbbだけを抽出、最後のaaa〜bbbだけをgrep -oなどで抽出したい時、どう正規表現で表せばよいのでしょうか?

422 :デフォルトの名無しさん:2012/11/20(火) 21:13:44.65
>>421
言語は何?あと与えられたテキストがaaaa〜bbbbだったらどこでaaaとbbbを区切るの。

423 :デフォルトの名無しさん:2012/11/20(火) 21:41:53.58
必ず3回aaa〜bbbが出てくるの?
もうチョイ詳しく書いてくれないとどうにも

どっちにしろ正規表現以外のサポートが受けれるなら
そっちと組み合わせたほうがはやいと思うよ

424 :デフォルトの名無しさん:2012/11/21(水) 00:57:30.56
>>422
言語というかunixのシェルスクリプトです

与えられたテキストが、とはどういう事でしょうか?
〜以外の部分は上記の文で確定しています
aaa〜bbbaaa〜bbbaaa〜bbbは何回続くのかは確定していません

この文自体を正規表現で表すとこんな感じだと思います
.*(aaa.*bbb)+.*
この中からn番目のaaa.*bbbだけを抽出したいのですが無理でしょうか?(実際にはaaaとbbbの間の文字列を取得したいです)
説明が下手で申し訳ありません・・・

425 :デフォルトの名無しさん:2012/11/21(水) 01:20:15.05
>>424
質問の意図は分かったけどシェルスクリプトで使える正規表現を知らないから
それを調べるのにちょっとかかりそう。それさえ分かれば簡単なんだけどねw

426 :デフォルトの名無しさん:2012/11/21(水) 02:17:30.96
>>424
ある程度調べた。grep -P オプションが使えない環境では無理。
普通のgrepだと (aaa.*bbb)+ とかでおおざっぱに取り出すことしか出来ないね。

unixにperlインスコしてperlの正規表現で処理すれば簡単なんだけどな。

参考にしたサイト
http://linuxjm.sourceforge.jp/html/GNU_grep/man1/grep.1.html

427 :デフォルトの名無しさん:2012/11/21(水) 10:50:11.06
aaa[^b]*bbb でぶった切って、煮るなり焼くなり。

428 :デフォルトの名無しさん:2012/11/21(水) 11:29:13.52
最初のaaaより手前と最後のbbbより後をsedで切り落とせば、あとはawkで
bbbaaaを区切りに指定して$1でも$2でも好きなの取り出せるよ

sed 's/^&yen;([^a]&yen;|a[^a]&yen;|aa[^a]&yen;)*aaa//'|sed 's/bbb&yen;([^b]&yen;|b[^b]&yen;|bb[^b]&yen;)*$//' | awk -Fbbbaaa '{print $2}'

429 :デフォルトの名無しさん:2012/11/21(水) 12:16:09.86
マルチ
http://toro.2ch.net/test/read.cgi/unix/1039165754/814

430 :デフォルトの名無しさん:2012/11/21(水) 13:33:13.02
向こうに山崎渉がいたぞ。
もうすぐ10周年って、どんだけ長持ちなスレなんだよ。
http://toro.2ch.net/test/read.cgi/unix/1039165754/29

431 :デフォルトの名無しさん:2012/11/21(水) 17:11:37.20
>>426
grep -Pは使える環境です!
>>427-428
ありがとうございます!参考にさせてもらいます>>429
それ僕じゃないです

432 :デフォルトの名無しさん:2012/11/21(水) 19:43:02.39
>>431
perlそのままで書くと↓

((?!aaa).)*(aaa((?!bbb).)*bbb){1}aaa\K((?!bbb).)*(?=bbb)

ただしシェルスクリプトだと\Kが使えない可能性が高いな・・その場合は>>428さんので。

{1} の数字を変えると取り出したい組み合わせを何番目にするか調整出来る。
{ } の中には 「取り出したい何番目かの数字」 - 1 を入れる。1番目なら0、2番目なら1、3番目なら2・・・

433 :デフォルトの名無しさん:2012/11/21(水) 19:45:39.38
基本正規表現で十分だろ
aaa[^b]*\(b\{1,2\}[^b]\+\)*b\{0,2\}bbb

434 :デフォルトの名無しさん:2012/11/21(水) 19:58:50.64
>>432はgrep -oで取り出すのを前提にしてます。
$1や$2で取り出せるならもっとシンプルに書けるんですけどね・・

435 :デフォルトの名無しさん:2012/11/21(水) 21:34:51.99
aaa123bbbbaaa456bbb

これから123bを正しく取り出すには..

436 :デフォルトの名無しさん:2012/11/21(水) 21:47:14.20
echo 'aaa123bbbbaaa456bbb' | grep -o 'aaa[^b]*\(b\{1,2\}[^b]\+\)*b\{0,2\}bbb' | sed -e 's/^aaa//' -e 's/bbb$//'

437 :デフォルトの名無しさん:2012/11/21(水) 22:08:47.89
>>398
これJavaの正規表現だとどうなりますか?

438 :デフォルトの名無しさん:2012/11/22(木) 00:30:07.28
>>432
上手く動作しなかったので>>428さんのを使わせてもらいます!色々ありがとうございました

最後に、
〜aaa〜bbb〜aaa〜bbb〜aaa〜bbb〜
からn番目のaaa〜bbbを抽出する方法を教えてもらえるとありがたいです

439 :デフォルトの名無しさん:2012/11/22(木) 01:58:36.36
>>437
phpと同じでおk。

440 :デフォルトの名無しさん:2012/11/22(木) 07:15:21.91
>>438
スクリプトで式を生成する。

441 :デフォルトの名無しさん:2012/11/22(木) 21:25:36.85
\Gの使い方は↓参照。

rs0032.zip【ノウハウ】まとめ (正規表現のメモ的なもの)
http://www42.tok2.com/home/proxo/rep/

↑は↓のツールで開くか、テキストエディタで開くと読める。
http://1st.geocities.jp/neeetest/jane.html

442 :デフォルトの名無しさん:2012/11/24(土) 04:35:57.17
>>440
スクリプトで式を生成する、とはどういう事でしょうか?教えてもらえるとありがたいです

443 :デフォルトの名無しさん:2012/11/24(土) 08:49:57.78
横だけど。

>>442
nが3のとき、4のとき、5のとき……って、必要なコマンドが全て違うわけだ。
でも、よ〜く見てみると完全に別のコマンドって訳じゃなくて、法則性があったりする。

だったらこの法則性を利用して、コマンドの文字列自体を出力するプログラムを書いてしまえということ。

444 :デフォルトの名無しさん:2012/11/24(土) 12:37:22.12
自分で正規表現作れるようになろうっていう意思がまるっきり感じられないのがなぁ。
ただのクレクレには答える気ないというのが総意だろう。

445 :デフォルトの名無しさん:2012/12/06(木) 19:13:37.62
ruby初心者です
テキスト中の指定した記号を削除したいのですが
text = 任意のテキストファイルにしておいて
text2 = "#{text}".gsub(/[\[\]\(\)\/"「」!@`~-.]/, "")
と書くと
invalid regular expression: /[\[\]\(\)\/"\242\243!@`~-.]/
となってしまいます
ついさきまでなんのエラーもなくできていたのですがどこがおかしいのでしょうか

446 :デフォルトの名無しさん:2012/12/06(木) 21:52:13.08
マイナスでは。
"#{text}".gsub(/[\[\]\(\)\/"「」!@`~.-]/, "")
"#{text}".gsub(/[\[\]\(\)\/"「」!@`~\-.]/, "")

447 :デフォルトの名無しさん:2012/12/06(木) 22:03:00.61
>>446
本当だ…
なんでさっきまでできてたんだろう
間違ってマイナス追加しちゃったのかもしれないけど記憶にないw
ありがとうございました助かりました

448 :デフォルトの名無しさん:2012/12/08(土) 18:23:57.54
質問良いでしょうか?
サクラエディタの置換処理の[該当行マーク]で取得範囲のテストをしています。

フルパスからドライブレターや(ネットワーク越しの)PC名を一発で切り出したいのですが
どのようにすれば良いでしょうか?

c:\windows\system32\drivers\etc\hosts
\\安藤PC\共有\excelデータ\

といった環境で、[c]や[安藤PC]を切り出したいです。
([^\\]+?)[\\:] と言うところまでこれたのですが、
行内で複数一致してしまい、うまく切り出せません。

449 :デフォルトの名無しさん:2012/12/08(土) 19:15:47.14
テストは一切してない
こんな感じか?
^(
([^\\ ]+): #頭から:の手前までの(*\と半角スペース*以外で1字以上)
|
\\\\([^\\\: ][^\\\:]*) #頭の\\の次から(*\と半角スペース*以外で1字)(*\と:と半角スペース*以外で1字以上)
)

450 :デフォルトの名無しさん:2012/12/08(土) 19:40:05.98
>>448
文字クラスの外で使う^が行頭ってことがわかれば
自力でいけそうな感じだな、がんばれよ。

451 :デフォルトの名無しさん:2012/12/08(土) 20:03:40.80
>>449
返信ありがとうございます
しかしながら[c:][\\安藤PC]となってしまい、コロンや\\が残留するようです。
このコロンや\\を一発で除去したいのが目的なので…

>>450
^が行頭は知ってます。
^ $ . + * ? [ ][^ ] ( ) | \\ \d \s \r \n \t $1 $2
単純な構造なら、↑ここらへんは書けますが、複雑になったり
回数指定や16進とかになると解説読んでなんとか…というレベルです。

2週なら[行頭の \\ 削除]、[行頭から最初の \ : まで取得]で簡単な話なんですが

452 :451:2012/12/08(土) 20:14:29.95
レス直後に自己解決しました。
$1一発で取るんじゃ無くて、>449さんに $2$3 で取得すれば行けますね。
ありがとうございました。

453 :デフォルトの名無しさん:2012/12/08(土) 20:16:56.13
別パターン

^(\\\\)?([^\\:]+)
\2

454 :デフォルトの名無しさん:2012/12/08(土) 20:17:26.73
解決したみたいだけどサクラエディタで質問する時は本体バージョンと、
使ってる正規表現DLLとそのバージョンを書くべき

455 :デフォルトの名無しさん:2012/12/08(土) 20:27:53.85
自分だったら\や\\を\tに変換して、エクセルで作業しちゃう。

456 : 忍法帖【Lv=2,xxxP】(1+0:5) :2012/12/15(土) 23:17:38.36
${2}1

457 :デフォルトの名無しさん:2012/12/20(木) 20:36:10.03
同じ文字列が繰り返されるような文字列にマッチさせるようにするにはどのように記述したら良いでしょうか?
ex)
apple_and_orange/1687646/abcde/abcde/hogehoge
apple_and_orange/5646818/fghijk/fghijk/hogehoge
apple_and_orange/1984687/lmnop/lmnop/hogehoge

/abcde/abcde/や/fghijk/fghijk/のように同じ文字列が繰り返されます
これが良い例えかどうかは分かりませんが、参照で説明したら
apple_and_orange/\d+/$1/$1/hogehoge
といった感じです

458 :デフォルトの名無しさん:2012/12/20(木) 21:00:31.33
/([^/]+)/\1

459 :デフォルトの名無しさん:2012/12/20(木) 21:08:48.05
>>458
ありがとうございます

460 :デフォルトの名無しさん:2013/01/03(木) 20:52:32.91
Javaで正規表現を使ってHTMLの終了タグを順番に一つずつ抽出しようと思ったのですが失敗しました。
\\[/.*\\]
Hello regex world! [a href="foo.html"]This is link text.[/a] [strong][em]woohooo![/em][/strong]
⇒[/a] [strong][em]woohooo![/em][/strong]

いろいろ調べて最短修飾子を使えばいいのかなと思いましたがこれも失敗しました。

461 :460:2013/01/03(木) 20:54:16.82
すいません途中で間違えて描いてしまいました。
最短一致で次のように試して失敗しました。

\\[/.*\\]+?
Hello regex world! [a href="foo.html"]This is link text.[/a] [strong][em]woohooo![/em][/strong]
⇒[/a] [strong][em]woohooo![/em][/strong]

結果は変わりませんでした。
何が間違っているのでしょうか?

462 :デフォルトの名無しさん:2013/01/03(木) 21:08:53.67
\[/[^\]]+\]

エスケープの仕方が間違ってる

463 :デフォルトの名無しさん:2013/01/03(木) 21:17:19.18
回答してから気がついたんだけど、コレほんとにHTMLなの?
JAVAでは<>が[]で表現されるとか?

464 :デフォルトの名無しさん:2013/01/03(木) 21:18:30.69
>>462
回答ありがとうございます!
Javaだと角かっこをエスケープする\をエスケープするために\\[とか\\]としないとエラーになるようで、
\\[/[^\\]]+\\]
としたら無事一つずつ抽出できました!

[^]で角かっこに含まれない一文字にマッチという意味のようなのでこれは
/と]以外にマッチするということですか?

465 :デフォルトの名無しさん:2013/01/03(木) 21:19:32.75
>>463
すいませんHTMLじゃなくてHTMLのtextareaの中に含める独自タグでした……括弧が違うだけで原理は一緒です。

466 :デフォルトの名無しさん:2013/01/03(木) 21:24:37.24
エスケープしてるほうの[]は単なる文字で
素の[]は文字クラス

なので\\[/[^\\]]+\\] は
[]に囲まれた]以外の1文字以上の任意の文字列にマッチ

467 :デフォルトの名無しさん:2013/01/03(木) 21:27:04.49
あ、/忘れた

[]に囲まれた先頭が/の]以外の1文字以上の任意の文字列にマッチ

文章にすると逆に分かりづらいな
日本語のうまい他の人に期待

468 :デフォルトの名無しさん:2013/01/03(木) 21:36:41.12
エスケープ文字が邪魔でわかりにくかったので<>で見てみました。
</[^>]>

こうなりますよね……
</と>に囲まれた>以外の1文字以上の任意の文字列にマッチ

Hello regex world! <a href="foo.html">This is link text.</a> <strong><em>woohooo!</em></strong>


</

>
に囲まれた
a> <strong><em>woohooo!</em></strong>
とはならない理由がいまいちつかめてないです……たぶん[^>]の意味がちゃんと理解できてないんだと思います。
詳しい解説感謝です!

469 :デフォルトの名無しさん:2013/01/03(木) 21:39:05.91
間違えました、

</

>
に囲まれた
a> <strong><em>woohooo!</em></strong

です。

470 :デフォルトの名無しさん:2013/01/03(木) 21:42:43.41
あ、aタグの後ろの>で引っかかってaまでが[^>]の部分とみなされたってことですかね?
そして後ろに囲む>がくっついたと。
なんとなくわかったかもです!

471 :デフォルトの名無しさん:2013/01/03(木) 21:47:55.58
解説書いてたら自己解決してたでござる。

それであってるよ。
あと、念のため
</[^>]>
じゃなくて
</[^>]+>
ね。

472 :デフォルトの名無しさん:2013/01/03(木) 21:55:38.52
あっ、+が無いと<と>の間に何もない時マッチしないですね
丁寧にほんと感謝です!

473 :デフォルトの名無しさん:2013/01/04(金) 04:32:05.31
そういうときは事前に【 】などに変換しておくと、ややこしくならなくて良いよ。

474 :デフォルトの名無しさん:2013/01/04(金) 22:19:43.90
>>473
遅くなりましたがアドバイスありがとうございます!

475 :デフォルトの名無しさん:2013/01/04(金) 23:51:26.93
後方参照で$1の後に特定の数字を続けたいんだけど、どう書けばいいんだろう
$12とか書くと、当然12番目のグループと解釈されて駄目

476 :デフォルトの名無しさん:2013/01/04(金) 23:57:52.97
${1}2

477 :デフォルトの名無しさん:2013/01/04(金) 23:59:46.88
ああごめん
ググッたら一番上に出てきたわ
本当めんご

478 :デフォルトの名無しさん:2013/01/05(土) 07:30:32.86
へぇ。知らなんだ。
ずっと"$1\x32"みたいなメンドくさいことしてたわ。
横からおいしくいただきましたw

プログラミング言語関連の調べ物って、ググるにしても
キーワードが"$"とか"#"みたいな記号だったりして難しいよね。

479 :デフォルトの名無しさん:2013/01/05(土) 08:13:02.35
後ろからもおいしく頂きます。

480 :デフォルトの名無しさん:2013/01/07(月) 00:10:04.48
boost regexでの話なのですが、後読みが使えないのですが何とかして先読みで代用できないものでしょうか?

先読み後読みの仕組みもそこそこにしか理解してないものの、無理そうな気配は感じております
が、この道の先人であるところの皆様なら何かすごい裏技をご存知なのではと一縷の望みを託しに参上いたしました

481 :デフォルトの名無しさん:2013/01/07(月) 00:37:46.83
後読みって戻り読みの別称でいいんだっけ?

482 :デフォルトの名無しさん:2013/01/07(月) 00:43:41.18
はい。英語ではlook-behindと書かれる↓です
(?<=),(?<!)

483 :デフォルトの名無しさん:2013/01/07(月) 00:43:55.04
>>480
可変長戻り読みの正規表現を使おうとしてるんじゃないの?
ttp://jp.emeditor.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=239&forum=3

もうちょっと具体的にマッチさせたい対象データと
boostの制限で通らなかった正規表現パターンを書いてもらわないと
アドバイスしづらい

484 :デフォルトの名無しさん:2013/01/07(月) 00:52:54.44
>>483
それです
可変長というのがよく分かりませんが

具体的には、
(?<!やす|ひろし|てつや)さん
で検索すると
のりこさん、ちぐささん、ひろしさん、てつやさん
の内 のりこさん と ちぐささん のさんがマッチしますが、(?<=),(?<!)が仕様上無いとのこと

どうにかなりませんでしょうか……?

485 :デフォルトの名無しさん:2013/01/07(月) 03:44:19.04
> (?<=),(?<!)が仕様上無いとのこと
ある
(?<!やす|(?<=ひ)ろし|(?<=て)つや)さん
でいける

よく調べようね

486 :デフォルトの名無しさん:2013/01/08(火) 17:20:32.87
>>485
ありがとうございます
それがいわゆる可変長と言うやつでしょうか
やす、ひろ、てつなら問題なかったと

487 :デフォルトの名無しさん:2013/01/08(火) 21:09:21.66
行頭と行末にリストタグを追加したいのですが、うまくいきません。。。
秀丸使っています。。どのように書けばいいのでしょうか??

あああ
いいい
ううう

↓望む結果

<li>あああ</li>
<li>いいい</li>
<li>ううう</li>

488 :デフォルトの名無しさん:2013/01/08(火) 21:37:20.10
(.*)
<li>\1</li>

489 :デフォルトの名無しさん:2013/01/08(火) 21:49:48.37
もし空行があった場合<li></li>だけの行になってしまうと多分まずいので
*より+のほうがいいと思う

490 :デフォルトの名無しさん:2013/01/08(火) 22:01:39.99
^(.*\S.*)$

スペースだけの行もカット。\Sは詳説・正規表現でよく出てくる。

491 :デフォルトの名無しさん:2013/01/08(火) 22:05:41.50
つまりだな
質問者はテンプレ使えって事だ

492 :デフォルトの名無しさん:2013/01/08(火) 22:14:53.93
テンプレの要項は満たしてるけど説明欄が不十分

493 :デフォルトの名無しさん:2013/01/09(水) 16:51:43.53
^(\s*)(.+)$
\1<li>\2</li>
インデント殺さないでほしいってなったときに。

494 :デフォルトの名無しさん:2013/01/09(水) 20:47:05.50
>> 488-493
質問者です。どうもありがとうござました。遅くなりました。

これでできました。
(.+)
<li>\1</li>

^(.*\S.*)$
<li>\1</li>

スペースの違いがあまりわからず、、いろいろと深いですね><

495 :デフォルトの名無しさん:2013/01/18(金) 11:20:51.12
PHPにて、2chで見るようなレスアンカーを検知して
その内容を区分けするようなプログラムを組んでいます。

例えば$testというstring型の中から
特定のアンカーがついた文章ごとに
配列に格納するようにstrposを使い
for($i = 0; $i <= 1001; $i++){
$res = '>>'.$i.'';
if(strpos($test, $res) !== false)){
//配列に入れる諸々処理
}}
という風に、簡略化はしてますがこんなのを書いたところ

動いてはくれるのですが、>>1とついた文章と>>15とついた文章が区別できてません。
>>1がついた文章用の配列の中に
>>15がついたのまで入っちゃいます。
その逆もです。
うまくそれらを区別するにはどんな正規表現を使えばいいのか、どなたかご教授願います。。

496 :デフォルトの名無しさん:2013/01/18(金) 12:09:05.36
皇潤
数字以外を検出

497 :495:2013/01/18(金) 13:22:49.52
>>496
レスありがとうございます。
確かに>>数字、の後には何かしら数字以外がくるので桁数を指定できますねなるほど…。

しかし、preg_matchで'/>>'.$i.'\D/'を条件にしてみましたがうまくいきません。
書き方が悪いのでしょうか?
降順もググッたりしましたがもう少しヒントを…
forをデクリメントで回したりしても結果変わらず…です…。

498 :デフォルトの名無しさん:2013/01/18(金) 13:33:13.42
自分の投稿内容よく読めよ

499 :495:2013/01/18(金) 14:02:53.49
>>498
正規表現と全然関係ないとこでミスってました。
'/>>'.$i.'\D/'こいつでいけてたんですが
preg_matchは !== false じゃなく
=== 1 で条件つけるべきだったんですね。

ありがとございましたー。

500 :デフォルトの名無しさん:2013/01/18(金) 23:39:45.21
アフィかな、がんばれ。

501 :デフォルトの名無しさん:2013/01/19(土) 01:52:56.64
ちなみに、

\D



(?!\d)

にするのが模範解答な。\Dの場合、数字以外の文字が必ず必要だが、(?!\d)の場合、
後ろに文字が存在しない場合でもマッチする。まぁ実用的には変わらないかもだが。

502 :デフォルトの名無しさん:2013/01/19(土) 11:10:26.52
笑いを取るための模範解答ってこと?

503 :デフォルトの名無しさん:2013/01/19(土) 17:19:26.64
>>501
その部分については安価のみを除外したい意図があるのかもしれないし。
数字をキャプチャするのが模範解答()には必要だと思うよ

504 :デフォルトの名無しさん:2013/01/20(日) 01:15:05.18
アンカのみを除外とか・・数字のキャプチャとか・・何言ってんだこいつは。
プログラミング出来ない馬鹿は黙ってろ。

505 :デフォルトの名無しさん:2013/01/21(月) 01:22:11.29
>>504

506 :デフォルトの名無しさん:2013/01/21(月) 12:23:08.55
キャプチャはいらないよね。それより全角

507 :503:2013/01/21(月) 13:41:04.68
>>504
for($i = 0; $i <= 1001; $i++){
$res = '>>'.$i.'';
プログラミングできる頭いい人ならこの時点でクソプログラムだってつっこめよ。

508 :デフォルトの名無しさん:2013/01/21(月) 16:31:34.57
人のミスを探す前に自分のミスを認めて謝罪して土下座するのが先じゃないの?
それが出来ないなら明日から来なくていいよ?

509 :デフォルトの名無しさん:2013/01/21(月) 16:52:05.30
あ、、アンカのみ除外ってそういうことか。
計算量を考えたら数字のキャプチャも必要か。。
プログラミングできない馬鹿はこちらでした。すみませんでした。

510 :デフォルトの名無しさん:2013/01/22(火) 01:07:37.81
●正規表現の使用環境
 秀丸エディタver8.11マクロ(正規表現:HMJRE.DLL V3.41)

●検索か置換か?
 置換

●説明
 ”(ダブルクォーテーション)で囲まれた文字列の中のある文字を置換したい。

●対象データ
 BASICテキスト
 10 A$="AR_2_ZBG":B$="_GDA_"
 20 C=D_2
 30 G$="_":E=F_2:IF G$>"_" THEN 100

511 :デフォルトの名無しさん:2013/01/22(火) 01:10:15.54
>>510の続き

 例えば上記のようなBASICテキストにおいて、行番号10,30の""の中にある_を-に変換したい。
 但し、行番号20のC=D_2と30のE=F_2の_は変換しない。
 なお上記のBASICテキストの””内は_の他に任意の半角文字とします。


●希望する結果
 10 A$="AR-2-ZBG":B$="-GDA-"
 20 C=D_2
 30 G$="-":E=F_2:IF G$>"-" THEN 100

512 :デフォルトの名無しさん:2013/01/22(火) 02:16:32.06
http://homepage3.nifty.com/k-takata/mysoft/bregonig.html
このdllが使えれば可能。

使えなければその処理をするためのプログラム作るか、手動で。

513 :デフォルトの名無しさん:2013/01/22(火) 02:54:25.90
>>510
正規表現だけでやろうとするな
秀丸なら追加の条件を使うのが定石

514 :512:2013/01/22(火) 04:20:59.49
>>512のdllはダメだった、異常終了する。互換性ない。>>513が最善と思われ。

515 :デフォルトの名無しさん:2013/01/22(火) 06:43:25.79
>>514
これなら互換性あるよ
ttp://homepage3.nifty.com/_htom/macro/macro_dll.html#label-23

516 :510:2013/01/22(火) 13:07:41.94
>>512>>513>>514>>515
皆様、ご回答有難うございます。
別のDLLを使う事や追加の条件を使う事を考えます。
昨日連続で書き込み出来なかったのですが、
 replaceall "([<|>|=]\"[^\"]*)_([^\"]*\")"
, "\\1\-\\2" , regular;
このようなマクロを考えて悩んで相談しました。
有難うございます。

517 :デフォルトの名無しさん:2013/01/23(水) 06:35:15.85
[<|>|=] ←これだと 「|」 も検索されちゃうよ、[<>=] ね。

518 :510:2013/01/23(水) 12:52:35.13
>>517
有難うございます。ご指摘の通り「|」も検索されていました。
頭をもう一度整理します。

519 :デフォルトの名無しさん:2013/01/23(水) 15:29:07.46
文字列に複数回数字が出現する時に
最後の数字だけ判定するには正規表現はどう書けばいいでしょうか?

具体的には
"foo 111 333 bar 222-hoge"
では"222"にマッチして
"aaa 22"
とある場合には 22 にマッチさせたいです。

環境はrubyです。

520 :デフォルトの名無しさん:2013/01/23(水) 16:02:28.10
>>519
\d+(?!.*\d)
先読み慣れてないけど、こんな感じかな。

521 :デフォルトの名無しさん:2013/01/23(水) 16:03:41.71
[\d]+[^\d]*$

522 :デフォルトの名無しさん:2013/01/23(水) 18:21:29.78
>>520
動きませんでした…。
>>521
ありがとうございます。
希望の動作ができました!

523 :デフォルトの名無しさん:2013/01/23(水) 20:07:29.60
>>522
http://www.rubular.com/r/Rg66E8ONpE
なんか環境が違うのかな、ともあれ>>521で動いたなら良かった

524 :デフォルトの名無しさん:2013/01/23(水) 21:21:04.59
環境っつーか間違ってるから動かないんだろ

525 :デフォルトの名無しさん:2013/01/23(水) 22:16:41.32
繰り返しの後ろに先読み否定を置くと落とし穴になることある。

(?>X+)(?!Y)

みたいに前の繰り返しを強制的に最長消費させれば落とし穴を埋められる。

526 :デフォルトの名無しさん:2013/01/24(木) 23:15:48.24
test(100) という文字列があって、(100)にマッチさせたいのですが、
\(.*\) ←この正規表現ではマッチしませんでした
wikiを呼んだら
>>"\(" や "\)" で囲まれた表現に続く "*" は無効とされる。しかし、一部の環境ではそうならない。
と書いてありました。
それでは(100)にマッチするパターンはどう記述するのでしょうか?

527 :デフォルトの名無しさん:2013/01/24(木) 23:29:31.94
まず環境が分からない

528 :デフォルトの名無しさん:2013/01/24(木) 23:34:29.13
>>527
QtというC++のライブラリです
Qtのスレもあるんでそっちで聞いたほうがいいですかね?

529 :デフォルトの名無しさん:2013/01/25(金) 06:47:51.71
マルチ

530 :デフォルトの名無しさん:2013/01/25(金) 07:45:56.09
>>529
もう解決してるね。(>>526)

【RAD統合環境】 Qt 総合スレ 14 【Win/Mac/Linux】
http://toro.2ch.net/test/read.cgi/tech/1344830647/596-598

531 :デフォルトの名無しさん:2013/01/25(金) 14:46:31.09
>>516
まだいる?いるなら>>515のライブラリで動くの作るよ?

532 :デフォルトの名無しさん:2013/01/26(土) 13:03:18.05
正規表現を身につけようと思ってググったら
正規表現練習ツールってのを見つけたんですけど
どうなんですか?

533 :デフォルトの名無しさん:2013/01/26(土) 13:18:17.27
練習用

534 :516:2013/01/26(土) 20:22:42.91
>>531
いますよー。もし可能でしたらお願い致します。<(_ _)>
結局、正規表現だけでは難しかったので、
取りあえずマクロと組み合わせて動かしています。

535 :デフォルトの名無しさん:2013/01/26(土) 21:40:31.13
>>534
鬼車dllで動くものはもう出来てるんだけど、秀丸用のdllって独自の改変が入ってるらしくて期待した通りに動かない・・
http://www42.tok2.com/home/proxo/rep/

違いを探して直すまでもう少しかかるから1日ほど待って。

536 :516:2013/01/26(土) 22:51:09.97
>>535
お時間を取らせてしまい申し訳ないです。了解致しました。
正規表現_part10_res510も拝見しました。
私はマクロで、正規表現で『[<>=]"文字"の中の最初の「_」】
をマッチさせた上で、
その後は1文字ずつ「_」があるか「"」が出るまで調べ、
「_」があれば都度、「_」を削除、「-」を挿入する処理を繰り返してます。

537 :デフォルトの名無しさん:2013/01/27(日) 04:46:22.44
>>536
おまたせです。書き込むときに長すぎると怒られたので【検索欄】を2行に分割してます。(一行に繋げて使って下さい)

【検索欄】
(?<C1>(?>(?:[^"\\_]|\\\p{ASCII})*)){0}(?<C2>(?:\g<C1>|_)*){0}(?:^(?<CAP1>(?:\g<C2>"\g<C1>")*\g<C2>"\g<C1>)_
|\G(?<=.)(?<CAP2>\g<C1>(?:"(?:\g<C2>"\g<C1>")*\g<C2>"\g<C1>)?)_)
【置換欄】
\3\4-

これの動作は
--------------------------------
カッコ外"カッコ内"カッコ外"カッコ内"
--------------------------------
というように、"が出現するごとにカッコの外か内かを判定してます。

よって、"の数が合わない場合、誤作動します。
-----------
〜"〜"〜"〜
-----------
↑最後の〜がカッコ内と判定される。

また、\"のエスケープに対応しています
------------
〜"〜\"〜"〜
------------
↑正常に動く。

538 :デフォルトの名無しさん:2013/01/27(日) 05:00:40.98
この動作で問題がある場合は言って下さい。
[<>=]を判定に付けたり、"の数が合わないときは最初から置換をしない、といったことが可能です。

↓この正規表現のソースみたいなもの。
http://www42.tok2.com/home/proxo/rep/index.html
秀丸用ライブラリ(hmonig.dll)のメモ的なものも書いておきました。
興味のある方はどうぞ。(無理に読まなくていいです)

今回作成に使った正規表現エディタ。↑のファイルを読み込んで編集出来ます。
ttp://1st.geocities.jp/neeetest/RepStrTool_2.8.zip

539 :516:2013/01/28(月) 04:47:14.90
>>537
すごい、完璧に動作しました!有り難く使用させて頂きます。
記載頂いた表現の中身をまだ理解しきれていないので勉強します。
今回は誠に有難うございました。また返答が遅くなり
申し訳ございませんでした。

540 :デフォルトの名無しさん:2013/01/28(月) 09:48:29.09
>>539
丁寧にどうもです。後から手を加えやすい作り方をしたので何か要望があればお気軽にー。

541 :デフォルトの名無しさん:2013/01/30(水) 11:50:25.72
マクロでやれば簡単なのに

542 :デフォルトの名無しさん:2013/01/31(木) 22:50:54.28
●正規表現の使用環境
sakuraテキストエディタ (bregonig.dll ver3.02 with Onigma 5.13.2)

●検索か置換か?
 置換

●説明
入れ子のデータを分離したい。

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

これをキャプチャして、(あいう)[えお]と分離したいです。

よろしくお願いします。

543 :デフォルトの名無しさん:2013/02/01(金) 05:15:18.17
(?:\(([^\(\)\{\}]*)\[([^\(\)\{\}]*)\]\))
($1)[$2]

544 :>>543:2013/02/01(金) 15:54:50.12
ありがとうございます。
試してみます。

545 :デフォルトの名無しさん:2013/02/03(日) 06:34:15.67
正規表現の定義は
スレッドプロセスに聞いてくれ

546 :デフォルトの名無しさん:2013/02/05(火) 23:25:17.22
性器表現

547 :デフォルトの名無しさん:2013/02/07(木) 07:59:11.54
(?:^|<br>)[  ]*[^ < ](?:(?:[  ]*<br>)+[  ]*[^ < ]){3}(?=[  ]*(?:<br>|$))

548 :デフォルトの名無しさん:2013/02/08(金) 12:51:15.97
JAVAのsplitで「|」を目安に配列に分ける作業があります
正規表現で¥マークそのものを対象にするなら¥¥ですが
|については¥|ではなく¥¥|で動作します
どうして¥マークが二つなのでしょうか?

549 :デフォルトの名無しさん:2013/02/08(金) 13:24:52.73
Javaは余り詳しくないのだが、
C/C++だと言語仕様としての \\ → \ の置換があって、そこから更に正規表現ライブラリに渡してるな。

550 :デフォルトの名無しさん:2013/02/08(金) 22:43:59.62
Javaも>>549のとおりだね
ソースコードの "\\|"
→Java文字列表記のエスケープがかかって「\|」
→正規表現エスケープでリテラルの『|』を指定したことになる

このへんC#だとエスケープ無し文字列表記をつかって @"hoge\|fuga"なんてささっと書けて見やすいんだけどなぁ

551 :デフォルトの名無しさん:2013/02/08(金) 22:47:25.15
「|」にマッチさせたい
 →正規表現の仕様で「|」そのものを表すためには「\|」と書く
  →javaコンパイラにとってはただの文字列なので「\」をエスケープして”\\|”と書く

552 :デフォルトの名無しさん:2013/02/09(土) 04:48:11.39
> 正規表現で¥マークそのものを対象にするなら¥¥ですが
俺はここが重要だと思うんだわ。
\\\\じゃなくて\\で\にマッチするあたりが。

553 :デフォルトの名無しさん:2013/02/09(土) 05:30:40.80
どこかに「|をパイプと呼ぶな」というスレがあったな

554 :デフォルトの名無しさん:2013/02/09(土) 05:37:42.32
セパレータでいいやん

555 :デフォルトの名無しさん:2013/02/09(土) 12:13:53.78
Pythonで非ASCIIとして日本語を含むけど、
それ以外の非ASCIIを含まない正規表現はどうかけばいいでしょうか?

print re.match(u'([ぁ-んー]+|[ァ-ンー]+|[\u4e00-\u9FFF]+)',u"a")
print re.match(u'([ぁ-んー]+|[ァ-ンー]+|[\u4e00-\u9FFF]+)',u"あ")
print re.match(u'([ぁ-んー]+|[ァ-ンー]+|[\u4e00-\u9FFF]+)',u"&uuml;")
print re.match(u'([ぁ-んー]+|[ァ-ンー]+|[\u4e00-\u9FFF]+)',u"가")
print re.match(u'([ぁ-んー]+|[ァ-ンー]+|[\u4e00-\u9FFF]+)',u"あ가")

と書いたんですが、これだと2個めだけじゃなくて、5個目もマッチしてしまうんですが、
2個めだけをマッチするようにはできますか?

556 :デフォルトの名無しさん:2013/02/09(土) 23:13:04.92
>>555
ASCIIを否定すれば?

557 :デフォルトの名無しさん:2013/02/09(土) 23:13:38.74
>>556
読み間違えてた。

558 :548:2013/02/10(日) 01:38:11.88
>C/C++だと言語仕様としての \\ → \ の置換があって、そこから更に正規表現ライブラリに渡してるな。
>→Java文字列表記のエスケープがかかって「\|」 →正規表現エスケープでリテラルの『|』を指定したことになる
興味深いお話ありがとうございました

559 :デフォルトの名無しさん:2013/02/10(日) 09:48:51.43
>>558
C++で正規表現書いてると、よくコンパイラに「不正なエスケープだけど間違ってない?」って突っ込まれるw

560 :デフォルトの名無しさん:2013/02/10(日) 23:00:08.92
>>558
\n とか \t ぐらいは普段から目にしてそうだけどね

561 :デフォルトの名無しさん:2013/02/11(月) 06:40:48.84
>>558
二重にエスケープをしないといけない場面はJavaに限らず遭遇するので良い経験だと思う

562 :デフォルトの名無しさん:2013/02/11(月) 15:52:39.80
\|がそのまま使えないとわかったら\u007Cみたいなコードポイント表記を使うのが無難
VBだったらchr(124)とかね

563 :558:2013/02/12(火) 09:35:19.72
特殊記号「.」 → \. = 「.」
特殊記号「|」 → \\| = 「|」
しかし思えば他の特殊記号と処理が違うのでしょうか…
|の例のままでいえば . ? なども同様の\\が必要なはずですし

564 :デフォルトの名無しさん:2013/02/12(火) 10:13:42.31
>>563
変わらないと思う。たまたま上手く動いてただけと予想。
もちろん、原因が全然別の所にあるなら分からないけども。

565 :デフォルトの名無しさん:2013/02/12(火) 10:15:24.61
正規表現中のエスケープの規則はアドホックだから、そういうものと思うしかない。
[] の中ではまた違うし。
POSIXの標準でも、拡張正規表現とそうでないので違うし。

566 :デフォルトの名無しさん:2013/02/12(火) 10:57:21.45
| はエスケープしないとJAVAに区切りだと思われてしまうんでしょ?
区切りではないという意味で \ が余計に1つ必要になる。

. や ? はJAVAの解釈時に影響を受けないので ¥ を余計に付ける必要がない。

・・とJAVA触ったことない人間が予想してみる。

567 :デフォルトの名無しさん:2013/02/12(火) 11:08:02.69
> 特殊記号「.」 → \. = 「.」

これは文字列 "." にマッチさせたいなら、期待するようにエスケープできてないはず。

568 :デフォルトの名無しさん:2013/02/12(火) 12:53:14.42
>>563
記述したい正規表現の\を一個増やすと覚えておけばいいんじゃないかなぁ。
\| を書きたいなら \\|
\. を書きたいなら \\.
\\ を書きたいなら \\\\
| を書きたいなら |

569 :566:2013/02/12(火) 13:54:03.88
>>567
ああ、「.」は「.」に"も"マッチするからなぁ。それが正解かもね。

570 :558:2013/02/13(水) 09:19:41.77
例文を見ると\\.となっていました
秀丸やPHPでも拡張子".foo"で拾うなどやっていましたが
perl互換云々などで間違えていたのかしら…
String text = "www.hoge.net";
Pattern p = Pattern.compile("\\.net");
Matcher m = p.matcher(text);

571 :デフォルトの名無しさん:2013/02/13(水) 09:31:20.41
> C/C++だと言語仕様としての \\ → \ の置換があって

と説明されてるだろ? Javaでも同じだけど、
ソースコード中の文字列リテラル(ダブルクオートで囲った文字列)の中身においては、
「ソースコードを解釈する時点で」バックスラッシュ2個が1個になるわけ。
正規表現とは関係なく。

572 :デフォルトの名無しさん:2013/02/13(水) 10:55:19.70
\をバックスラッシュに置き換えるフォントってどれだっけ

573 :デフォルトの名無しさん:2013/02/13(水) 11:23:43.54
>>572
\は始めからバックスラッシュだと思うが?

574 :デフォルトの名無しさん:2013/02/13(水) 11:27:27.79
そう見える人にはそうだな

575 :デフォルトの名無しさん:2013/02/13(水) 12:28:21.98
バックスラッシュが円マークとして表示されてるだけであって、
置き換わってるわけじゃないっていう揚げ足取りじゃないかなぁ

>>572
適当にプログラマ向けとされているフォント入れるといいと思うよ。
0Oや1lI|の区別がつきやすいやつ

576 :デフォルトの名無しさん:2013/02/13(水) 13:30:08.54
文字判別が良いから、¥が\になるVLゴシック使ってるけど…

正直¥の方が良くね?

¥って、ほとんどの言語でかなり強い意味を持つから、
さらっとした\より、もじゃもじゃした¥の方が目に入りやすい気がする。

577 :デフォルトの名無しさん:2013/02/13(水) 13:38:14.39
普段見慣れてないから / と間違えそうw

578 :デフォルトの名無しさん:2013/02/13(水) 14:33:15.95
githubにアップしたファイルやテキストをwebで見たら勝手に\で表示してくれてた

579 :デフォルトの名無しさん:2013/02/13(水) 16:10:54.24
>>571
ああ今やっと流れがわかりました
代入したパターン「\.」がストレートに関数へ使われるのではなくて
その言語で表現する仕様を踏んでから次に関数へ入るわけなんですね
JAVAだったら"\\|"と書いて初めて渡すものが"\|"になると…
「"」内で「"」を描くには「\"」と同じ様に考えていましたが
そういうエスケープじゃなくて結果として\|を渡さないといけないんですね

580 :デフォルトの名無しさん:2013/02/13(水) 19:16:47.04
そんなことはみんな知ってて言わないだけだから
いちいち報告しなくてもいいよ

581 :デフォルトの名無しさん:2013/02/13(水) 19:48:21.87
そんな意地悪言わないで、判らなかったことが解ったときは、褒めてあげようよ。

582 :デフォルトの名無しさん:2013/02/13(水) 20:34:44.42
>>579
You are awesome!

583 :デフォルトの名無しさん:2013/02/13(水) 21:40:55.13
まとめ乙。
皆、最初は知らない。

考えればわかることもあるけど。

584 :デフォルトの名無しさん:2013/02/13(水) 22:30:37.23
どう分かったのかを言い残してくれる人のほうがいいに決まってる。
「自己解決しました」、とだけ言っていなくなる人と比べたら1億倍マシ。

585 :デフォルトの名無しさん:2013/02/13(水) 22:49:19.36
そだね、報告はうれしいもの。
質問する人からすれば他の人の報告はどうでもいいように思えたりするけれど、
そう思ってるうちはいつまでも質問する側になっちゃうことに気づくべき。

586 :デフォルトの名無しさん:2013/02/14(木) 00:15:36.19
「ありがとう」より嬉しかったりするよね

587 :デフォルトの名無しさん:2013/02/14(木) 02:01:19.59
順追って処理するということが出来ない奴多いよな

588 :デフォルトの名無しさん:2013/02/14(木) 03:22:48.64
俺はヒントや考え方の方向だけ示すことが多いんだが、
それを理解して正解を導いたと報告されると嬉しい。
教え甲斐があるってもんだ。

589 :デフォルトの名無しさん:2013/02/14(木) 09:03:32.84
魔法はいきなり結果が出るものだからな。<順

590 :デフォルトの名無しさん:2013/02/15(金) 00:24:32.19
どうせ中途半端な知識なんだから
知ってる事全部さらけだした方が答える方も得だろ
あんまもったいつけんなよ

591 :デフォルトの名無しさん:2013/02/18(月) 02:52:27.06
●正規表現の使用環境
Perl

●検索か置換か?
検索

●説明
トップから第三レベルドメインまでをマッチさせたい。
www.(mydomain.co.jp)※括弧の中
サブドメインが無い場合も想定されます。
mydomain.com
www.aaa.mydomain.com
aaa.bbb.mydomain.com

●対象データ
www.mydomain.co.jp
mydomain.co.jp
mydomain.com
www.aaa.mydomain.com
aaa.bbb.mydomain.com

●希望する結果
mydomain.co.jp
mydomain.com

よろしくお願いします。

592 :デフォルトの名無しさん:2013/02/18(月) 03:09:21.74
\w+\.\w+\.\w+$

593 :デフォルトの名無しさん:2013/02/18(月) 07:37:53.38
つ "-"

594 :デフォルトの名無しさん:2013/02/18(月) 12:49:26.12
***.com.auとか***.jpとかあるから各国の状況調べる必要があるな

595 :デフォルトの名無しさん:2013/02/19(火) 02:28:49.80
>>591
重複する結果が出てはくるけど手っ取り早いものだと

say $&amp; if $text =~ m/mydomain\..+?$/;

ではどうだろう?

596 :595:2013/02/19(火) 02:30:53.24
>>595

「&amp;」は実際は半角「&」1文字ね。

597 :デフォルトの名無しさん:2013/02/19(火) 10:48:57.66
2ちゃんの仕様が変わって直接 & 書けるようになってるって

598 :デフォルトの名無しさん:2013/02/19(火) 10:49:53.95
古いチンクル使ってるとかだったら更新した方が・・・

599 :デフォルトの名無しさん:2013/02/19(火) 13:08:16.87
>>591
http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1

さあ頑張ってこれを正規表現にするんだ

600 :デフォルトの名無しさん:2013/02/19(火) 19:43:08.07
お願いします。

●正規表現の使用環境
Javascript

●検索か置換か?
検索

●説明
HMVの商品IDらしき番号を取得したい

●対象データ
http://www.hmv.co.jp/artist_松平健_000000000039225/item_マツケンサンバ-2-リミックス-トラックス-dvd_1789889

http://www.hmv.co.jp/artist_松平健_000000000039225/item_マツケンサンバ-2-リミックス-トラックス-dvd_1789889/ref/1448035_8

●希望する結果
1789889

説明
アンダーバー以降の末尾の自然数が商品IDなのですが(これなら簡単)
リファラー付きの場合は末尾じゃなくなるので初心者の自分には難しいです。
なお、商品IDは0(ゼロ)で桁合わせはしていません

601 :デフォルトの名無しさん:2013/02/19(火) 20:24:22.65
じゃあ最初に見つかった
> アンダーバー以降の末尾の自然数が商品IDなのですが(これなら簡単)
でいいんじゃないの

602 :デフォルトの名無しさん:2013/02/19(火) 20:25:20.34
あまりにも適当なレスしてしまったわ。
/ref/以降を除去してからやれば?

603 :デフォルトの名無しさん:2013/02/19(火) 21:04:18.16
>>600
^http:\/\/(?:www\.)?hmv\.co\.jp\/artist_[^/]+\/item_[^/_]+_(\d+)(?:\/ref\/[^/]*)?$

604 :デフォルトの名無しさん:2013/02/19(火) 21:52:30.37
>>603
ありがとうございます。
文字列の否定や後方参照を使うのですね。

>>602
たしかにそれもそうなのですが
どのような正規表現で実現できるか気になったので質問しました。

605 :デフォルトの名無しさん:2013/02/19(火) 22:45:38.08
item_.+?_(\d+)/
こんだけで取り出せるんじゃねーの?
商品名に/_入ったら別だが

606 :デフォルトの名無しさん:2013/02/19(火) 23:42:30.64
>商品名に/_入ったら別だが

商品名に/が入るなんてことはあり得ないでしょ

607 :デフォルトの名無しさん:2013/02/20(水) 03:11:55.23
入ってたらエスケープされるだろうしな。

608 :デフォルトの名無しさん:2013/02/20(水) 12:18:19.06
>>597
&#160;

609 :デフォルトの名無しさん:2013/02/20(水) 15:30:35.60
>>606
そんなことないよ。

610 :デフォルトの名無しさん:2013/02/20(水) 15:43:20.39
>>609
URL欄なんだからありえないと言ってるんだろう。
商品名にあったらエスケープされてるはずだし。

611 :デフォルトの名無しさん:2013/02/20(水) 15:50:54.96
>>609みたいに1レスだけ読んで脊髄反射で書き込みする奴ってどうしようもないな・・・

612 :デフォルトの名無しさん:2013/02/20(水) 19:26:50.99
/(スラッシュ)とか *(アスタリスク)とかいう名前の
中二病っぽいロックバンドとかいそうだよな。
まあ、エスケープするか全角文字を使えばよいよな。

613 :デフォルトの名無しさん:2013/02/20(水) 20:07:39.97
urlエンコードされるだろ。%20とか。スラッシュのコード忘れたけど。

614 :デフォルトの名無しさん:2013/02/20(水) 21:38:17.57
2f

615 :デフォルトの名無しさん:2013/02/20(水) 23:02:03.56
>>612
お前正規表現本当に理解できてんのか?

616 :デフォルトの名無しさん:2013/02/21(木) 00:44:46.10
使いもしないhmvサイトの仕様なんてしらねえからな
ないとかエスケープされるとか推測で断定するのは責任感のないど素人か厨房

617 :デフォルトの名無しさん:2013/02/21(木) 01:04:29.40
エスケープするのはURIの仕様だが

618 :デフォルトの名無しさん:2013/02/21(木) 01:15:18.59
正規表現をある程度理解していてhttpの基本仕様知らないとか
そのほうが嘘だろと疑うわ

619 :デフォルトの名無しさん:2013/02/21(木) 01:19:58.79
ところで>>600ってSafari使ってる?

620 :デフォルトの名無しさん:2013/02/21(木) 04:24:00.24
>>616
んでも、あるとmod_rewriteの正規表現がめんどくさくなるよ

>>617
URIにスラッシュを使ってはいけない理屈はもちろんないので的外れ
作るほうの事を考えたらそのまま入ることはないって考えるのが妥当だけどね

>>618
正規表現の前提知識にHTTPを要求するほうがうそだろとおもうわ
キュレーションとかクローリングにしか使わない人なんかな

621 :デフォルトの名無しさん:2013/02/21(木) 09:32:53.85
>>620
あまりにも屁理屈がすぎるのでマジレスしてみる。
RFC3986に、URI構成要素に区切り文字が含まれる時はパーセントエンコードされなければならないと
明言されている。
百歩譲ってアプリケーションの仕様だとしても、それは、URI設計の段階で意味的な一貫性を保つために
決定される事で、mod_rewriteの正規表現〜とか実装上の都合で避けられるようなたぐいのものではない。

622 :デフォルトの名無しさん:2013/02/21(木) 14:05:08.85
>>621
RFCだかJRCだかなんだか知らんがな
俺が言いたいことはhttp://www.google.com/に代表されるようにスラッシュが含まれるURIはザラにあって
「スラッシュはエスケープする決まりだろ」とか勝手に決めつけて、そういう製品名は考慮しませんとか言い出すエンジニアは総じてクソだということだけ。

623 :デフォルトの名無しさん:2013/02/21(木) 14:08:55.31
URIって部分ごとにエスケープが必要だったり必要でなかったりするよ?

624 :デフォルトの名無しさん:2013/02/21(木) 14:14:09.44
そもそもRequestForCommentsに強制力はない
鯖や倉がどう処理するかは実装依存だし
そもそもの600がどういうソースから元データを得るのかすら明示されてない

RFCに何かが明言されていたらどうだというのか
他人叩きたいだけの頭の悪いゴミだという自己紹介ならよそでやれ
621なんて使い物にならんのは即刻クビだわ

625 :デフォルトの名無しさん:2013/02/21(木) 14:34:54.39
httpの仕様とは関係ない。
通常はディレクトリなどの区切りでも、HMVは商品名に/を使うかもしれない。

626 :デフォルトの名無しさん:2013/02/21(木) 14:36:39.68
RFCのどこそこにこう書いてある、と示さないのが悪いだけで、
ぶっちぎり上等を公言するのはバカのすること。

627 :デフォルトの名無しさん:2013/02/21(木) 14:37:40.44
>>600
これでいいだろ

/item_.*?_(\d+)(/|$)

628 :600:2013/02/21(木) 17:22:20.25
HMVの商品のURIは昔は
http://www.hmv.co.jp/product/detail/商品ID
だったのですが今は、既述の通りに商品名が入った長いURIになっています

http://www.hmv.co.jp/product/detail/1789889
今でも短いURIで商品名の入った長いURIにリダイレクトされますが

それを利用してHMVのURIを短縮する目的で
商品IDの抽出の正規表現をおねがいしました

629 :デフォルトの名無しさん:2013/02/21(木) 17:54:30.10
>>621
まず、URIの区切りとサーバ上のディレクトリが必ずしも一致しないというのは知ってるよね。
httpの基礎知識を要求するなり、RFCを持ち出すなりするぐらいだから。

なので、区切り文字が区切りとして扱われることを期待する範囲で、
区切り文字を表現する場合にエスケープを行えばそれでいいのよ。

630 :デフォルトの名無しさん:2013/02/21(木) 18:46:33.22
>>629
混乱してきた
その前提があるからエスケープされるだろって事なんだが?
「商品名に含まれる'/'が区切り文字として扱われてもいいじゃないか」というのは屁理屈じゃないのか?

631 :デフォルトの名無しさん:2013/02/21(木) 19:16:20.43
>>630
その前提というのがどの前提かわからないが。/が区切りとして扱われる前提?
もしそうなら、それが前提であるかどうかを判断するのはサーバサイドの都合でしかない。

>>629の後半を補足しとく。

http://www.hmv.co.jp/artist_松平健_000000000039225/item_マツケンサンバ-2-リミックス-トラックス-dvd_1789889
にアクセスした際に、
http://www.hmv.co.jp/?artist=000000000039225&item=1789889
としてアプリケーションにパラメータを引き渡す実装を考える。

# たとえばこういう置換によって。→ s|/artist_.*?_(\d*)/item_.*?_(\d*)$|/?artist=\1&item=\2|
# HMVは実際こうはなっていないけれど、あくまでも例として考えてもらえれば。

この場合、必要なのはアンダースコアでセパレートすることになる。
商品名にスラッシュがあったとしても、それが区切りを意味する必要はないし、
もちろんエスケープを行う必要もないのがわかってもらえるとおもう。


なお、何でそんな置換を行うかというのは、アプリケーションの配置場所、
クローラとの兼ね合いなどいくつかの理由があるけど、そこも説明しだすときりがないので。

632 :デフォルトの名無しさん:2013/02/21(木) 19:40:09.72
>>631
いやいや、例をだすならこっちだろ
http://www.hmv.co.jp/artist_松平健_000000000039225/item_マツケンサンバ-2-リミックス-トラックス-dvd_1789889/ref/1448035_8

同じように屁理屈言わせてもらうが
商品名が'artist_a/item_b_1789889/ref/1448035_8'だったらどうする?

633 :デフォルトの名無しさん:2013/02/21(木) 20:03:25.65
いまいち詰めがあまかったな。
商品名が'/artist_a/item_b_1789889/ref/1448035'だったらどうする?
だな。

まあ、言いたいことはあれだ
どうせ詳しい仕様は分からないんだから、わざわざ'/'をエスケープしないケースを考えて
話をややこしくするより、「(普通は)エスケープされるだろ」で終わらせればいいじゃないかって事だ。

634 :デフォルトの名無しさん:2013/02/21(木) 20:28:12.80
>>633
>>631の例の場合は書いているように、アンダースコアがセパレータとして働くので、
その場合においては、その商品名に含まれるアンダースコアをエスケープしなければならない。

>>620でも書いたけど、めんどくさいのはもちろん同意するし、
そのほうがいかにもそれらしいURLになるよね。

635 :デフォルトの名無しさん:2013/02/21(木) 20:53:33.93
こう使ってもいいだろ。文字列全体をエンコードしなくても文法上は問題ない。日本語部分は英字のほうが安全だが。

エバラ/焼肉のたれ/醤油味/300g
エバラ/焼肉のたれ/味噌醤油味/295g
エバラ/ステーキ御膳焙煎にんにく風味/165g
エバラ/キムチ鍋の汁/500g

636 :デフォルトの名無しさん:2013/02/21(木) 22:08:00.66
日本語やスペース含むデータなのだからエスケープしないとブラウザが解釈できない。スラッシュを特別扱いしてそのままで何とか動くようにする理由が考えられない。

637 :デフォルトの名無しさん:2013/02/21(木) 22:09:15.35
久しぶりに来たらRFCとか持ちだしてる馬鹿がいてびっくりした。現実を見ろよ現実を。

638 :デフォルトの名無しさん:2013/02/21(木) 22:12:00.97
janetterというTwitterクライアントで非公式リツイートをミュートしたいのですが
^RT @ だと公式RTも全部ミュートされてしまうため
非公式リツイートのみ非表示にする正規表現を教えて下さい

639 :デフォルトの名無しさん:2013/02/21(木) 22:25:38.67
>>638
特定のサービスのことをさも誰でも知ってるようなききかたされても分かるわけないだろゴミクズ
公式RTと非公式RTのテキスト上での違いくらい言えないのかキチガイ

640 :デフォルトの名無しさん:2013/02/21(木) 22:44:47.19
>>638
そのツールのスレで聞けよアンポンタン

641 :デフォルトの名無しさん:2013/02/21(木) 23:32:34.46
これがJanetter使いです
低能でしょ?

642 :デフォルトの名無しさん:2013/02/22(金) 00:35:32.51
松ケンサンバー♪

643 :デフォルトの名無しさん:2013/02/22(金) 15:36:57.97
性器表現

644 :デフォルトの名無しさん:2013/02/22(金) 15:44:49.94
>>643
時々それを嬉しそうに書いてくる小学生がいるんだよ
そう、お前のことだ

645 :デフォルトの名無しさん:2013/02/22(金) 16:45:57.15
素で誤変換する奴がいるからNGワードにも入れられないという罠。

646 :デフォルトの名無しさん:2013/02/22(金) 16:49:56.03
単語だけのやつをはじくようにすればよくね?

647 :デフォルトの名無しさん:2013/02/22(金) 17:27:22.06
性 器表現ですよね

648 :デフォルトの名無しさん:2013/02/22(金) 17:45:58.40
じゃこれで

^[  ]*性[  ]*器[  ]*表[  ]*現.{0,10}$

649 :デフォルトの名無しさん:2013/02/22(金) 18:03:26.86
ホワイトスペースを効率よく全無視する性器表現って
どうやって書けばいいんだろうね

650 :デフォルトの名無しさん:2013/02/22(金) 18:23:57.37
小生 器 表 王見
とか倍角文字を使う奴も現れるかもしれないね

651 :デフォルトの名無しさん:2013/02/22(金) 18:35:25.24
たかが性器表現くらいでNGなんて不自由な世の中だ

652 :デフォルトの名無しさん:2013/02/22(金) 19:04:29.38
おちおち誤変換もできないな

653 :デフォルトの名無しさん:2013/02/22(金) 21:27:11.78
★性★
★器★
★表★
★現★

654 :デフォルトの名無しさん:2013/02/22(金) 21:29:08.54
[性器表現]{4}

655 :デフォルトの名無しさん:2013/02/22(金) 21:59:20.45
もう助詞入ってないやつはNGにするは

656 :デフォルトの名無しさん:2013/02/22(金) 22:11:32.60
女子無会話

657 :デフォルトの名無しさん:2013/02/22(金) 22:25:05.52
正規表現の面倒なところはコマンドプロンプトとかVisualStudioとかPowerShellとかサクラエディタとか
それぞれで書き方やエスケープ文字が若干異なるところだな

658 :デフォルトの名無しさん:2013/02/22(金) 22:29:43.68
それを正規表現の所為だと思えるのはなぜだ

659 :デフォルトの名無しさん:2013/02/22(金) 22:43:00.41
亞汰魔がおかしいから

660 :デフォルトの名無しさん:2013/02/23(土) 01:09:08.25
つかこのスレにいるような人達は痴漢してると思うんだ。

661 :デフォルトの名無しさん:2013/02/23(土) 02:16:38.58
>>658
正規表現に方言が多いのが面倒だと言っているのに
おまえこそ何でそういう解釈になるわけ?
正規表現はわかるのに、人の言葉は解釈できないのかよ。

662 :デフォルトの名無しさん:2013/02/23(土) 02:23:40.78
>>661
いいから馬鹿は黙ってろって

663 :デフォルトの名無しさん:2013/02/23(土) 02:29:57.61
ジョン「料理の面倒なところは和食とかフレンチとかイタリアンとか中華とか
   それぞれで材料やダシの取り方が若干異なるところだな」

エディ「それを料理の所為だと思えるのはなぜだ」

664 :デフォルトの名無しさん:2013/02/23(土) 02:31:02.52
>>662
いいから答えろよ
人に変な疑問投げておいて
黙ってろで済ませるな

665 :デフォルトの名無しさん:2013/02/23(土) 02:34:30.39
正規表現って、プログラマがかんがえたのじゃなくて、けっこうむかしに研究されたらしいよ
いろいろあって当然

666 :デフォルトの名無しさん:2013/02/23(土) 02:37:10.02
性格に問題のある人間は正規表現にハマりやすい。
正規表現にはゲーム性がある。
論理的な上に単純なので性格に問題がある馬鹿でも解けるのが魅力らしい。

断っておくが、「正規表現にハマってる人間は性格に問題がある」と言っているのでは「ない」ことに注意されたし。

ちなみに性格に問題がある馬鹿には難しいことは理解出来ないのでDFAなどの話には付いてこれない。

667 :デフォルトの名無しさん:2013/02/23(土) 02:38:17.12
>>663
それもおかしい
なぜ「料理のせい」などという明後日の方を向いたレスになるんだ?
ジョンは同意を求めているのだから、
エディの返しとしては、「そうだな」か、「そうは思わん」のどちらかだ。
おまえらコンピュータをやり過ぎて、人としての基本的な
会話のキャッチボールができなくなってるだろ

668 :デフォルトの名無しさん:2013/02/23(土) 02:41:13.70
ちょっと落ち着けw

669 :デフォルトの名無しさん:2013/02/23(土) 02:47:49.50
正規表現の起源は、50年以上前にさかのぼる(注1)
神経生理学者のWarren McCullochとWalter Pittsは1940年代,オートマトンを使って神経回路網をモデル化
(中略)
数学者のStephen Kleeneは1956年,数学的な集合である正則集合(regular sets)を使って
McCullochとPittsのモデルを記述し直し(中略)
正則集合を記述するために作られたのが正規表現(regular expression)

情報科学
Ken Tompsonは、正規表現を(中略)行エディタqedに組み込み,パターンマッチによる検索機能を実装した。
この検索機能を独立させ,行単位のテキストフィルタとしたのがgrep

スクリプト言語処理系など(以下略)
(注1)Cマガジン2001年12月号p.14コラム

670 :デフォルトの名無しさん:2013/02/23(土) 02:53:57.62
>>669の原典は、詳説 正規表現らしい(p.66)

いま改訂版がでている(.NET, Java, PHPを追加)
詳説 正規表現 第3版

671 :デフォルトの名無しさん:2013/02/23(土) 02:57:51.18
第三版、今手元にあるお。

672 :デフォルトの名無しさん:2013/02/23(土) 03:05:23.63
>>669
Ken Thompson

673 :デフォルトの名無しさん:2013/02/23(土) 03:32:19.85
標準化・規格化しないのかなあ
rubyですらしたというのに

674 :デフォルトの名無しさん:2013/02/23(土) 04:43:36.42
POSIX

675 :デフォルトの名無しさん:2013/02/23(土) 05:02:43.90
標準化されたとしても形骸化するのが目に見えてるけどな。
RFCとそれに従わずに独自拡張を入れまくるIEみたいな関係だ。

676 :デフォルトの名無しさん:2013/02/23(土) 05:19:05.85
正直、やれPOSIXだ、やれPerlだ……とかよりも、
ツール等で使う場合には「パターンにマッチしなかったもの」というオプションを入れてくれればそれでいいやw

677 :デフォルトの名無しさん:2013/02/23(土) 05:22:03.17
ツールで使う場合は変数を使えるようにするのが最重要課題だと思うわ。

tr/a-z/A-Z/

をツール上の正規表現でやろうとしたらえらいことになるからな。

678 :デフォルトの名無しさん:2013/02/23(土) 16:40:03.27
外部コマンド実行とか付いてるだろ低脳
それ使ってPerlで置換しろ池沼

679 :デフォルトの名無しさん:2013/02/23(土) 16:54:55.86
正規表現上で出来ないのが問題だと言ってるんだが。まぁ馬鹿を相手にしても時間の無駄か。

680 :デフォルトの名無しさん:2013/02/23(土) 17:16:05.63
エディタの置換だったら大概\1だの$1だのあると思うけど、どういうツールの事言ってんの?

681 :デフォルトの名無しさん:2013/02/23(土) 18:10:53.26
>>675
W3C標準とRFCが混ざってるわけじゃないなら、
番号教えてもらえると嬉しいです

>>680
\1だの$1だのじゃ解決できない話だと思うよ

>>679
ね。

682 :デフォルトの名無しさん:2013/02/23(土) 18:28:09.71
>>681
あ、trのことか、変数じゃなくて式の評価が必要ってことね。
確かにそういうの出来るエディタはあまりないかもな。

683 :デフォルトの名無しさん:2013/02/23(土) 21:20:20.34
>>682
<span>a</span> を <span>A</span> のようにspanタグに挟まれてる小文字のアルファベット1文字を
大文字に置換したいとする、さて、正規表現で置換するにはどう書けば良いか。

この答えは26行の正規表現になる。もし変数が使えられたとしたらこれを一行で済ませられる。
↓変数xに大文字のアルファベットを代入し、置換時に取り出す。

検索欄
<span>(a$x=A|b$x=B|c$x=C|・・・|z$x=Z)</span>
置換欄
<span>$x</span>

これが出来れば全部の検索にかかる時間が大幅に減り、処理速度も向上する。

・・という例えで分かるかなぁ?

684 :デフォルトの名無しさん:2013/02/23(土) 21:39:43.37
>>683
おい冗談だろ?ネタだよな?

685 :デフォルトの名無しさん:2013/02/23(土) 21:51:07.69
>>683
あまりの無知ぶりに、見てるこっちが恥ずかしくなる

686 :デフォルトの名無しさん:2013/02/23(土) 21:52:47.60
>>683
初心者は回答するな

687 :デフォルトの名無しさん:2013/02/23(土) 21:56:04.80
よう分からんけど
<span>([a-z])</span>
<span>$($1.toupper())</span>
の方がいいんでない?

688 :デフォルトの名無しさん:2013/02/23(土) 22:00:12.13
1文字ならそうだけど、文字数が4文字だったら?

689 :デフォルトの名無しさん:2013/02/23(土) 22:05:11.49
単純に検索パターンが
<span>([a-z]{4})</span>
とかになるだけなんでは?

690 :デフォルトの名無しさん:2013/02/23(土) 23:01:19.54
まぁ方法はどうあれ、現状では>>683の置換をツール上の正規表現で行うには26行も必要なわけで。
それを1行で書けるようにすれば便利じゃねって話。

691 :デフォルトの名無しさん:2013/02/23(土) 23:35:46.24
小文字から大文字に置換する ってとこに囚われてる人が多いな。
読解力無さ過ぎて呆れる。

692 :デフォルトの名無しさん:2013/02/23(土) 23:45:30.60
>>690
ちなみにemacsならこう
\(<span>\)\([a-z]\)\(</span>\)
\,(concat \1 (upcase \2) \3)
プログラミング用のエディタ探せば多分他にもある

693 :デフォルトの名無しさん:2013/02/23(土) 23:56:18.00
だからさぁ、話の筋を理解しようよ。emacsでそれが出来たって何の意味もないでしょ。

694 :デフォルトの名無しさん:2013/02/24(日) 00:03:31.27
どういう筋だ?

695 :デフォルトの名無しさん:2013/02/24(日) 00:12:55.04
>>683
>>682は理解してるのに何でそんなことしちゃったの?

正規表現と置換は密接な関係にあるけど異なるものだと理解してほしいものです。
それを正規表現で行いたいという気持ちはわからんでもないけど、
できるとしてもマッチグループに属性をつけることで後方参照時に何らかのフィルタがかかることを定義する
どまりじゃないかなぁ

696 :デフォルトの名無しさん:2013/02/24(日) 00:14:15.42
とはいってもそんなもの重くなるだけで、置換側の仕事だろってのはわかってるよとあわてて連レスフォロー。

697 :デフォルトの名無しさん:2013/02/24(日) 00:40:44.05
なんつーかロクに人の話も聞かないで突っ走っちゃう人だなw
もう疲れたから寝るよ。

698 :デフォルトの名無しさん:2013/02/24(日) 00:41:55.27
プログラマってそういうやつばっかだし気にしてもしょうがないだろ
とりあえず一緒に寝ようず

699 :デフォルトの名無しさん:2013/02/24(日) 01:06:32.85
アッー!

700 :デフォルトの名無しさん:2013/02/24(日) 04:28:41.55
>>697
話が具体的すぎたかもしれないね。お休み。って、もう朝だわ

701 :デフォルトの名無しさん:2013/02/24(日) 08:00:06.30
>>695はそこそこ抽象化した案を出してると思うけど、>>697のいう突っ走ってる人が>>695かもしれない
俺読解力ないのかな

702 :デフォルトの名無しさん:2013/02/24(日) 12:32:41.24
>>692
bregonig.dll (Ver.3 以降)対応のサクラエディタとかなら大文字小文字痴漢が使えそう
http://homepage3.nifty.com/k-takata/mysoft/bregonig.html#SCT-5.3.
Ver.3 以降で、\l, \u, \L, \U, \E が使用できるようになりました。ただし、現バージョンでは Perl とは異なり、大文字小文字変換を行うのは ASCII の範囲内のみとなります。また、検索パターン内では使用できません。

Rubyも2.0で正規表現エンジンがbregonig.dllと同じ鬼雲になるから、
大文字小文字変換の正規表現が使えるようになるかも

703 :デフォルトの名無しさん:2013/02/24(日) 17:18:17.39
●正規表現の使用環境
VBscript

●検索か置換か?
検索

●説明
HTMLソースのタグを除去して抽出した文字列X,Yについて
X,Y間のHTMLソースの文字列A,Bの有無

●対象データ
*************X***********A********Y***********
*************X***********B********Y***********

単純に文字列A,Bを検索してもいいのですが、以下のパターンがあるので
X,Y間を指定しなければなりません
*************X***********A********Y*****B*****
*************X***********B********Y*****A*****

*はHTMLソース
X-A間、A-Y間の文字数は任意

今はソース全体から文字列X,Y間を切り出して、検索しています
切り出す作業を減らせるのでは考えました

704 :デフォルトの名無しさん:2013/02/24(日) 17:23:13.37
検索はA,Bそれぞれで検索(検索回数2回)になっても構いません

705 :677:2013/02/24(日) 17:25:18.75
>ツールで使う場合は変数を使えるようにするのが最重要課題だと思うわ。

この真意が正しく伝わって無かったようでスマソ。

『ツールで使う場合』とは、bregonig.dllのようなライブラリをツール(サクラエディタ等)で使用する場合のことを言ったつもりでした。
つまり、bregonig.dllのような外部ライブラリに>>683のような正規表現が標準で実装されると良いな、という意味です。

サクラエディタで

<span>sun</span> を <span>日曜日</span> に置換。
<span>mon</span> を <span>月曜日</span> に置換。
・・・
<span>sata</span> を <span>土曜日</span> に置換。

という7つの置換を正規表現を使った置換でやろうとすると7回の置換実行が必要ですが、>>683の記述が可能になれば
1回の実行で済むんです。perlやruby、マクロなどではプログラムのコード記述で補えるため、この機能は要りませんが、
外部ライブラリとして使われる場合には無いと不便な機能なんです。

これは>>695さんの言う通り、本来は正規表現の仕事ではありません。あくまで外部ライブラリに期待している機能です。
言葉足らずで申し訳ない。m()m

706 :デフォルトの名無しさん:2013/02/24(日) 17:59:25.77
>>703
こういうことかい?

(A|B).*?(?=Y)

707 :デフォルトの名無しさん:2013/02/24(日) 18:04:00.78
>>703
X.*(A|B).*Y的な?

708 :デフォルトの名無しさん:2013/02/24(日) 18:23:20.16
>>703
文字列A,文字列Bはタグを全体または部分的に含んでも構わないし、
タグそのものでも構わない。
という解釈でいいですか?

709 :デフォルトの名無しさん:2013/02/24(日) 18:51:45.05
>>708
X,Yはいくつタグを跨いでも構わないということになるね。
ただし、文字列としてはタグを除去して認識される。

710 :デフォルトの名無しさん:2013/02/24(日) 19:03:09.23
>>709 ということは
X=qaz, Y=vwx になるとして、 A = ab</tr>cd の時に
q<tr>az ab</tr>cd vwx は true
q<tr>az abcd vwx は fail
こういうことですね。

711 :703:2013/02/24(日) 19:17:41.66
>>706
A.*?(?=Y)、B.*?(?=Y) ともにできました
Xが条件に入っていないので不安なところもあります

>>707
A.*Yで検索はできましたが、X.*A、X.*?Aが不可となります。文字列中だから?
Xのみ、Yのみ、Aのみでは検索できています

>>708
具体的には <span calss="検索文字列A"> です

712 :703:2013/02/24(日) 19:21:54.50
正 <span class="検索文字列A">

713 :デフォルトの名無しさん:2013/02/24(日) 19:28:27.71
>>711
上の話の続きであるとは全く思わなかったよ。

714 :703:2013/02/24(日) 19:50:41.27
XとAの間の何かの制御コードがジャマしているような
\r、\nでいろいろやりました

X*(.|\r\n)*Aでできました

715 :デフォルトの名無しさん:2013/02/24(日) 20:02:51.75
馬鹿は大変だな

716 :デフォルトの名無しさん:2013/02/24(日) 23:13:27.89
正規表現ってある限度を超えて複雑になるといきなり処理に膨大な時間がかかるようになったりとかあるの?

717 :デフォルトの名無しさん:2013/02/24(日) 23:18:54.97
>>716
>ある限度を超えて複雑
ある限度って何?
複雑と判断する条件は?

>膨大な時間
何年をすぎたら膨大な時間?

お前みたいなゴミはプログラミングに向いてない
消えろ

718 :デフォルトの名無しさん:2013/02/24(日) 23:26:41.58
>>716
20文字くらいの正規表現なのに異様に時間のかかるのを見たことある。
正規表現のアルゴリズムの弱点をツンツンしたやつ。

719 :デフォルトの名無しさん:2013/02/24(日) 23:42:37.14
>>716
複雑さとは関係なく、対象データが大きくなるとコストでかくなったりするよ。
指数的に大きくなってるかどうかはわかんない

720 :デフォルトの名無しさん:2013/02/25(月) 03:00:10.88
>>719
分からないならレスするな基地害
ブログにでも書いてろよ
その糞テクストを掲示板に投稿せずにはいられないほど自己顕示欲旺盛なの?

721 :デフォルトの名無しさん:2013/02/25(月) 03:24:32.22
>>718のって意外と知られてないよね、このスレに常駐してる人でも知ってる人は少ないだろう。

722 :デフォルトの名無しさん:2013/02/25(月) 03:50:00.51
こんな感じか?
ttp://i.imgur.com/HMMcG.jpg

723 :デフォルトの名無しさん:2013/02/25(月) 04:10:56.05
なんだこれ、RFCの人の気が狂っちゃったのかな

724 :デフォルトの名無しさん:2013/02/25(月) 04:39:02.99
グロ注意

725 :デフォルトの名無しさん:2013/02/25(月) 05:22:27.95
>>724
何がグロだよバカ野郎w

726 :デフォルトの名無しさん:2013/02/25(月) 09:40:47.89
童貞にはちょっとハードすぎたか

727 :デフォルトの名無しさん:2013/02/25(月) 09:42:02.61
失せろゴミ

728 :デフォルトの名無しさん:2013/02/25(月) 10:46:16.83
>>727
うるさいゴミ

729 :デフォルトの名無しさん:2013/02/25(月) 11:23:44.29
>>722よりもロリコンに中出ししてる画像のほうがグロだと思うけどね。

730 :デフォルトの名無しさん:2013/02/25(月) 12:26:51.52
>>729
┌(┌ ^o^)┐<ホモォ

731 :デフォルトの名無しさん:2013/02/25(月) 12:33:57.19
何でホモが出てくるんだ

732 :デフォルトの名無しさん:2013/02/25(月) 12:52:57.85
ロリコンに中出しはグロとか以前に犯罪行為

733 :デフォルトの名無しさん:2013/02/25(月) 13:30:47.31
ロリコン=ロリータコンプレックスをわずらっている男
ロリータ=幼女
じゃないの?w

734 :デフォルトの名無しさん:2013/02/25(月) 13:39:03.09
以前ようかんマンで話題になった人は
先日死刑が執行されたようだ

735 :デフォルトの名無しさん:2013/02/25(月) 13:55:16.13
グロ画像とロリコンとホモの好きなニートが平日昼間から集会を開くスレ

736 :デフォルトの名無しさん:2013/02/25(月) 18:31:31.15
クソスレ化の一途を辿る

737 :デフォルトの名無しさん:2013/02/25(月) 18:58:10.10
双方18歳以上で同意のうえならロリコンに中出ししても犯罪にならないのでは?

738 :デフォルトの名無しさん:2013/02/25(月) 20:10:33.45
重い正規表現

検索
\A"(?:\\.|[^"\\]+)*"\z

テキスト
"aaaaaaaaaaaaaaaaaaaaaaaa

bregonig.dllで動作確認。

739 :デフォルトの名無しさん:2013/02/25(月) 20:27:54.73
>>738
はいはい、マシンスペックも測定結果も比較できる値も書けない脳弱乙
そんなゴミの「たいかんでおそかったですw」みたいな糞レスをここに書き込むな
脳弱はブログと2chの区別もつかないのか?

740 :デフォルトの名無しさん:2013/02/25(月) 20:41:59.70
bregonig.dllって時点で低能Jane厨何だろうけどね

741 :デフォルトの名無しさん:2013/02/25(月) 20:44:19.73
>>739
ゴミレスしてる暇があったら試してみろって。ゴミだから時間はたっぷりあるんだろ?わらわら

>>740
bregonig.dllからJaneを連想するか?これが2ch脳ってやつか。

742 :デフォルトの名無しさん:2013/02/25(月) 20:46:13.36
>>739
測定結果や比較表があるとあなたは何をしてくれるの?
むしろ詳細を送りたいからコミュニティなり連絡先を教えてほしい

743 :デフォルトの名無しさん:2013/02/25(月) 20:46:41.15
>>741
消えろクズが

744 :デフォルトの名無しさん:2013/02/25(月) 20:48:16.85
>>742
個人的なやりとりがしたいなら最初からどっかのコミュニティでどうぞ。

ベンチも好評する相手も中途半端。

745 :デフォルトの名無しさん:2013/02/25(月) 20:51:02.05
>>738みたいに根拠も示さずにマーケティングの結果云々って会議で言う奴いるよねw陰では氏ねばいいのにって言われてるのに本人気付かずwww

746 :デフォルトの名無しさん:2013/02/25(月) 20:52:29.08
>>742
何もしねーよ
じゃあお前は何の目的があって書き込んだの?
ああ、自己顕示欲だけは旺盛なゴミだったか

747 :デフォルトの名無しさん:2013/02/25(月) 20:53:01.08
>>744
いやあ、マシンスペックや測定結果がほしい人を「中途半端」だなんて、そんな持ち上げる必要ないよ。
まともな開発をしたことがないのは明々白々なんだから。

748 :デフォルトの名無しさん:2013/02/25(月) 20:53:51.91
>>746
何もできないの間違いでしょう?日本語は正しく。

749 :デフォルトの名無しさん:2013/02/25(月) 20:54:39.60
つか早く試してみろよ、明らかに遅いのが体感出来るぞ

750 :デフォルトの名無しさん:2013/02/25(月) 20:54:59.06
>>741
本人じゃないやつは黙って貰えませんかね?
気持ちが悪いですよ

751 :デフォルトの名無しさん:2013/02/25(月) 20:56:04.60
>>750
あ?本人だけど?

752 :デフォルトの名無しさん:2013/02/25(月) 20:56:20.50
>>749
たぶん、通常どのくらいの速度であるかを知らないから、そういうもんだろって納得する

753 :デフォルトの名無しさん:2013/02/25(月) 20:57:07.25
いや、そういうレベルじゃねぇ、フリーズしたのか?って思うほど重くなるぞ。

754 :デフォルトの名無しさん:2013/02/25(月) 21:00:49.87
ベンチベンチうるさいな
これで満足か?
ttp://i.imgur.com/KriMA.jpg

755 :デフォルトの名無しさん:2013/02/25(月) 21:02:22.76
遅いとか重いとか体感でしか言えないゴミが大きい顔して何言ってんだ?
こういうゴミがスレの質を低下させてるんだろうな

756 :738:2013/02/25(月) 21:04:36.24
俺は小学生のときからプログラムやってるプログラム歴14年だぞ

だからベンチマークなんか取らなくてもわずかな速度の違いも認知できる

757 :デフォルトの名無しさん:2013/02/25(月) 21:06:20.01
>>748=何もできない蛆虫

758 :デフォルトの名無しさん:2013/02/25(月) 21:07:38.44
>>748 = ロリコン

759 :デフォルトの名無しさん:2013/02/25(月) 21:08:45.65
試したのかどうか知らんが、試した結果>>756のようなレスをしたんだったらやっぱり素質がない

760 :デフォルトの名無しさん:2013/02/25(月) 21:10:32.00
>>755
おい、フリーズに近い状態になるのに計測とかしたって意味ないだろアフォ。

761 :デフォルトの名無しさん:2013/02/25(月) 21:10:49.96
そもそも、このスレにプログラマいねーだろw

762 :デフォルトの名無しさん:2013/02/25(月) 21:12:48.93
正規表現に詳しい奴すらいないけどなw詳しい奴なら>>738を見たらピンとくる。
まぁオートマトンって何?なレベルのカスの集まりに何を言っても分からんだろうが。わらわら

763 :デフォルトの名無しさん:2013/02/25(月) 21:13:32.29
重いのは確かだけど4秒くらいで終わった
フリーズってどんな環境だ

764 :デフォルトの名無しさん:2013/02/25(月) 21:14:45.78
4秒も動かなかったらフリーズしたかって思うだろ?あの検索に4秒かかるって思わないだろ普通。馬鹿かおめえ。

765 :デフォルトの名無しさん:2013/02/25(月) 21:17:22.63
ん?とは思うけどフリーズかと言われると……

766 :デフォルトの名無しさん:2013/02/25(月) 21:17:47.54
ていうか普通にふくろう本に書いてあるだろ

767 :デフォルトの名無しさん:2013/02/25(月) 21:17:47.65
重いのは確かって書いてるんだから4秒かかると思ってはいなかったのは明らかだろ。
頭に血が上りすぎだわ。煽り耐性ないのか
コア1個4秒占有されたところでなんともなかろ。

768 :デフォルトの名無しさん:2013/02/25(月) 21:18:24.57
そうそう、素直にそうやってあやまればいいんだよ。

769 :デフォルトの名無しさん:2013/02/25(月) 21:19:37.41
検索1つに4秒も占有されんだぞ?大問題だろ?サーバだったらえらいことになるだぞ?分かってんのかこのチンピラが。

770 :デフォルトの名無しさん:2013/02/25(月) 21:21:20.19
>747:デフォルトの名無しさん :2013/02/25(月) 20:53:01.08 [sage]
>まともな開発をしたことがないのは明々白々なんだから。

>764:デフォルトの名無しさん :2013/02/25(月) 21:14:45.78 [sage]
>4秒も動かなかったらフリーズしたかって思うだろ?あの検索に4秒かかるって思わないだろ普通。馬鹿かおめえ。


ぶふあああああああああぁぁぁぁぁぁぁぁぁぁぁぁwwwwwwwwwwwwwwwwwwwwwww
まともに開発したことあったら予想外の挙動なんて腐るほど経験するのにwwwwwwww
4秒でフリーズ判断wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ヴァカの思考回路SUGEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEwwwwwwwwwwwwwwwwwwwwwwwwwwwww

771 :デフォルトの名無しさん:2013/02/25(月) 21:21:57.03
フリーズって言うから1分くらいかかるのかと思ってたら
4秒で終わって拍子抜けだった

でもこの程度で4秒かかるのは面白くはある

772 :デフォルトの名無しさん:2013/02/25(月) 21:22:25.91
>>770
同一人物判定できてない。

773 :デフォルトの名無しさん:2013/02/25(月) 21:23:00.37
今度はマシンスペックも書かずに4秒の議論か。
このスレのレベルも本当に落ちたな。

774 :デフォルトの名無しさん:2013/02/25(月) 21:24:25.61
>>722
ん?
その2人は同一人物じゃないと話が通じないか?

775 :デフォルトの名無しさん:2013/02/25(月) 21:25:45.05
どゆこと?
いみふ

776 :デフォルトの名無しさん:2013/02/25(月) 21:26:19.04
犯人は20−30、もしくは40−60だ

777 :デフォルトの名無しさん:2013/02/25(月) 21:26:23.01
777

778 :デフォルトの名無しさん:2013/02/25(月) 21:29:26.85
>>774
typoが過ぎるので真意がわからないけど、その二人は別人。

779 :デフォルトの名無しさん:2013/02/25(月) 21:31:14.07
>>773
いいから早く試せタコ

780 :デフォルトの名無しさん:2013/02/25(月) 21:32:27.63
うるさいゴミ

781 :デフォルトの名無しさん:2013/02/25(月) 21:33:56.30
>>779
誰に命令してんだボンクラ
お前がベンチ結果貼れば済む話

782 :デフォルトの名無しさん:2013/02/25(月) 21:35:46.32
ま   さ   に   ク   ソ   ス   レ

783 :デフォルトの名無しさん:2013/02/25(月) 21:53:41.02
>>766
おま、察してやれよ、このスレにふくろう買えるお金と意味を理解する頭を持った奴なんていねえだろ?
弱い者いじめするなよ・・

784 :デフォルトの名無しさん:2013/02/25(月) 23:05:05.00
>>781
分かりやすいように2つ並べておいた。
ttp://www.good24.jp/resources/images/blog/4/files/20060803_01.jpg

785 :デフォルトの名無しさん:2013/02/25(月) 23:19:17.98
お前らいつも>>738みたいなクソ正規表現書いてるんだろ

786 :デフォルトの名無しさん:2013/02/25(月) 23:25:37.75
>>785
おまえがいつも作ってるのってあんなんだろ?

787 :デフォルトの名無しさん:2013/02/25(月) 23:25:57.08
え? >>738が実用的な正規表現だと思ってる人がいるの?

788 :デフォルトの名無しさん:2013/02/25(月) 23:31:53.81
>>787
普通に実用出来るけど

789 :デフォルトの名無しさん:2013/02/25(月) 23:35:22.58
じゃあ何をどう検索して
どういう場合に使うのか説明してくれ

790 :デフォルトの名無しさん:2013/02/25(月) 23:39:39.96
嫌だと言ったら?

791 :デフォルトの名無しさん:2013/02/25(月) 23:51:57.47
何をやってるか理解できない正規表現をクソだとよく言えたもんだ。

792 :デフォルトの名無しさん:2013/02/25(月) 23:54:22.92
煽るためには相応の知識が必要だという好例

793 :デフォルトの名無しさん:2013/02/25(月) 23:59:52.69
何かは教えてやんないけど遅いからマネしちゃだめだぞ

794 :デフォルトの名無しさん:2013/02/26(火) 01:41:08.54
で、なんで4秒もかかるの?

795 :デフォルトの名無しさん:2013/02/26(火) 01:48:31.73
うんこスペックだから

796 :デフォルトの名無しさん:2013/02/26(火) 03:48:25.87
スペック晒さないでよく煽れるな
馬鹿は無敵の好例w

そりゃマシンが粗大ゴミでFAだろw

797 :デフォルトの名無しさん:2013/02/26(火) 05:09:42.84
結局>>738は性器表現とか書いてる小学生と同じレベルだった。

798 :デフォルトの名無しさん:2013/02/26(火) 06:52:47.22
>>538のツールで処理時間を取ってみた。

\A"(?:\\.|[^"\\]+)*"\z の場合↓(3回計測)

[マッチ= No ] [検索=1589.758 ms] [置換=1592.005 ms] [ループ= 1 ] [文字数= 25 byte]
[マッチ= No ] [検索=1586.236 ms] [置換=1584.322 ms] [ループ= 1 ] [文字数= 25 byte]
[マッチ= No ] [検索=1588.603 ms] [置換=1601.471 ms] [ループ= 1 ] [文字数= 25 byte]

\A".*"\z に書き換えて計測↓(3回計測)

[マッチ= No ] [検索= 0.004 ms] [置換= 0.043 ms] [ループ= 1 ] [文字数= 25 byte]
[マッチ= No ] [検索= 0.004 ms] [置換= 0.042 ms] [ループ= 1 ] [文字数= 25 byte]
[マッチ= No ] [検索= 0.004 ms] [置換= 0.043 ms] [ループ= 1 ] [文字数= 25 byte]

前者は後者の40万倍の遅さ。

799 :デフォルトの名無しさん:2013/02/26(火) 07:56:13.55
なるほど、ものによっては正規表現使うより単純にループさせた方が速いってことか。
もう正規表現(゚听)イラネ

800 :デフォルトの名無しさん:2013/02/26(火) 09:03:32.87
>>798
便乗してすまんが
\A"(?:\\.|[^"\\])*"\z
も計測出来る?
できたらお願いします。

801 :デフォルトの名無しさん:2013/02/26(火) 10:57:08.17
自分でベンチも取れないゴミはム板から出ていけ

802 :デフォルトの名無しさん:2013/02/26(火) 11:27:07.67
>>799
正規表現エンジンの種類によるんだよ。
ふくろう本も読まずにイラネとか言うなカス。

803 :デフォルトの名無しさん:2013/02/26(火) 15:13:26.15
>>802は4秒もかかるゴミエンジンを使用しています

804 :デフォルトの名無しさん:2013/02/26(火) 15:22:20.35
性器と生殖器って違うの?

805 :デフォルトの名無しさん:2013/02/26(火) 15:34:34.94
>>804
雄蕊は生殖器だが普通、性器とは言わない。

806 :デフォルトの名無しさん:2013/02/26(火) 22:19:37.74
>>800
なんでツールまであるのに自分でやらないの?
ツールにコピペしてボタン押すだけでしょ?

807 :デフォルトの名無しさん:2013/02/27(水) 03:54:53.51
>>776
あ、田宮さん?

808 :デフォルトの名無しさん:2013/02/27(水) 05:12:19.09
お前の頭に生えているのはケツ毛だ、頭髪ではない。

頭に頭髪がない → ハゲ

つまり頭にケツ毛しか生えていないお前はハゲだということだ。

809 :デフォルトの名無しさん:2013/02/27(水) 08:40:49.39
regular expression Rex で良かったな
standard expression だったら目も当てられん

810 :デフォルトの名無しさん:2013/02/27(水) 10:34:43.34
>>776
31−39は犯人じゃないのは確実なのね

811 :デフォルトの名無しさん:2013/02/27(水) 17:04:54.27
お前の頭に生えているのはケツ毛だ、頭髪ではない。

頭に頭髪がない → ハゲ

つまり頭にケツ毛しか生えていないお前はハゲだということだ。

812 :デフォルトの名無しさん:2013/03/02(土) 00:51:03.92
性器表現

813 :デフォルトの名無しさん:2013/03/02(土) 00:54:33.15
&#x2570;&#x22C3;&#x256F;

814 :デフォルトの名無しさん:2013/03/02(土) 03:06:01.52
まんこー

815 :デフォルトの名無しさん:2013/03/02(土) 13:33:57.60
>>812
問題:女性器と男性器の結合を正規表現で表せ。
配点は50点とする。

816 :デフォルトの名無しさん:2013/03/02(土) 19:37:37.76
(())

817 :デフォルトの名無しさん:2013/03/02(土) 21:09:33.89



818 :デフォルトの名無しさん:2013/03/02(土) 21:22:00.63
性器の大発見

819 :デフォルトの名無しさん:2013/03/03(日) 12:50:25.98
荒らしのドメインは性器ょう.net

820 :デフォルトの名無しさん:2013/03/04(月) 15:43:42.31
政府からの女性器ん

821 :デフォルトの名無しさん:2013/03/04(月) 19:34:30.48
このスレ電車の中で開くの恥ずかしいんだが
ネタスレならネタスレと最初に書いとけよ

822 :デフォルトの名無しさん:2013/03/04(月) 22:29:57.65
「Regular Expression」を「正規表現」なんて和訳した奴が悪い
これなら「規則性表現」とかの方がマシ

823 :デフォルトの名無しさん:2013/03/04(月) 23:09:26.82
性表現の規則か。。バリエーションが減っちゃうのは残念だな

824 :デフォルトの名無しさん:2013/03/04(月) 23:59:10.77
>>822
全くだ。
俺のIT人生で、これだけ違和感の強い訳語はない。
考えた香具師に小一時間問い詰めたい。

825 :デフォルトの名無しさん:2013/03/05(火) 00:06:07.04
せめて正則とできなかったものかねー
正規だとnormalだよなあ

826 :デフォルトの名無しさん:2013/03/05(火) 00:09:30.17
でもこういう文化・・・文化じゃないけど言葉って誰かが変えなきゃ変わらないよ

俺たちで変えよう

まずはスレタイとテンプレート、それに回答者から変えていこう

どう変えるかって?

回帰するのさ

ライブラリ、プログラム、スクリプト、パターンマッチング・・・全て和訳なんかせずにそのままだ

そう、「レギュラーエクスプレッション」でいこう

827 :デフォルトの名無しさん:2013/03/05(火) 00:11:48.53
次のスレタイは

レギュラーエクスプレッション(正規表現) Part11

だ、そして次は

レギュラーエクスプレッション Part12

にする

828 :テンプレ:2013/03/05(火) 00:13:11.14
スルーされにくい質問のテンプレと例

●レギュラーエクスプレッションの使用環境
Java1.5

●検索か置換か?
検索

●説明
各行の1番目のAまでを検索したい

●対象データ
ABCA
BCAA
CABA

●希望する結果
ABCA
^
BCAA
^^^
CABA
^^

※ ^ はアンダーラインだそうな ^^;

829 :デフォルトの名無しさん:2013/03/05(火) 00:26:14.99
>>828
>※ ^ はアンダーラインだそうな ^^;

最後の顔文字のせいでアンダーラインが顔にしか見えなくなったぞw

830 :デフォルトの名無しさん:2013/03/05(火) 04:48:51.18
拡張検索 とかのほうが直感的だよねw
カタカナならマッチングランゲージとか?

これ以外にも妥当なのが色々あると思うけどね。

831 :デフォルトの名無しさん:2013/03/05(火) 08:12:14.46
レギュラーエクスプレッションでいいよ
下手に違う単語持ってくると面倒

832 :デフォルトの名無しさん:2013/03/05(火) 11:45:15.14
長いからレギエクで

833 :デフォルトの名無しさん:2013/03/05(火) 12:29:30.07
どうでもいいよ。次スレは普通に正規表現 part11になるだろうし。

834 :デフォルトの名無しさん:2013/03/05(火) 13:14:02.27
ならないよ
「正規表現」で建てたほうは潰すから

835 :デフォルトの名無しさん:2013/03/05(火) 13:20:01.65
和訳しないなら普通に英語でよくね。カタカナ長ったらしい

836 :デフォルトの名無しさん:2013/03/05(火) 13:56:58.37
スレタイとテンプレは変えられても、関連サイトの名前はどうしようもないな。
関連サイトやページの名前に含まれてる「正規表現」は固有名詞としての性質だしな。
そこは諦めなきゃならないと思う。

837 :デフォルトの名無しさん:2013/03/05(火) 14:33:14.01
わざわざオリジナルの略語を作らなくても
Regex(レジェックス)という略語があるだろ

838 :デフォルトの名無しさん:2013/03/05(火) 14:41:25.11
symbolic expression -> S式
regular expression -> R式

839 :デフォルトの名無しさん:2013/03/05(火) 17:53:26.50
おまいら正規化や正規雇用でもおっきすんの?

840 :デフォルトの名無しさん:2013/03/05(火) 20:20:47.06
>>834
じゃあレギュラーなんとかスレはおまえの隔離スレってことで。

841 :デフォルトの名無しさん:2013/03/05(火) 20:48:00.58
そして正規表現スレは性器厨と性器AA厨の隔離スレになるのであった。

842 :デフォルトの名無しさん:2013/03/05(火) 20:57:57.29
何だかんだで性器表現キチガイと>>840が隔離されるんだろうなw
まぁ仲良くやれやw

843 :デフォルトの名無しさん:2013/03/05(火) 21:03:30.01
>>842
>>834乙w

844 :デフォルトの名無しさん:2013/03/05(火) 21:05:57.67
>>837
なるほどかっこいいな。
しかし発音サイト調べたけど俺にはむずい…

http://ja.forvo.com/word/regex/#en

845 :デフォルトの名無しさん:2013/03/05(火) 21:08:50.06
未だに根拠のない自演認定して草生やしてる馬鹿発見。

846 :デフォルトの名無しさん:2013/03/05(火) 21:12:33.13
俄然盛り上がってきたなあ

847 :デフォルトの名無しさん:2013/03/05(火) 21:15:53.22
>>845
くやしいのうwwwくやしいのうwww

848 :デフォルトの名無しさん:2013/03/05(火) 21:20:03.81
 ―┼‐         ノ     /   |  --ヒ_/     /   \ヽヽ    ー―''7
   `」   ┼,   二Z二   レ   /  /´レ' \ ―7 ̄}  |  ー-、   /
 (__  (|フ)   (__ノ  _ノ  ∨`  ノ  /  /     _ノ    \_

    ─┼-        /   |   ‐┼-   |     ー|―
    ─┼─ |   \ レ  /   ̄Tー  /      ノ -─
   (二フヽ  \/    _ノ   (二フ\  ヽ_ノ   / 、__

     i';i
    /__Y
     ||真||                   /⌒彡
  _ ||露||         /⌒\     /冫、 ) ・・・・・・。
  \ ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄\ `./⌒ i `  /ゝ    _,,..,,,,_
  ||\`~~´  (キムチ)       \( >     ('\\  ./ ,' 3 `ヽーっ ・・・・・・。
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄\`つ    ⌒ _) l   ⊃ ⌒_つ
     .|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||                `'ー---‐
( 'A) ・・・。 〃∩ ∧_∧        <⌒/ヽ___
/(ヘ)ヘ    ⊂⌒(  ・ω・) ・・・。  <_/____/ zzzz・・・
         `ヽ_っ⌒/⌒c

849 :デフォルトの名無しさん:2013/03/05(火) 21:27:32.28
性器厨が必死の抵抗

850 :デフォルトの名無しさん:2013/03/05(火) 21:52:14.64
スレタイやスレナイで使われてるのが「正規表現」じゃないと「性器表現」とか書きにくいもんなw

851 :デフォルトの名無しさん:2013/03/06(水) 00:23:26.61
regular coffee 普通のコーヒー
regular holiday 定休日
regular client 常連
regular army 正規軍
regular lesson 正規の授業

辞典調べてみたけどregularって割りと使うんだね。

852 :デフォルトの名無しさん:2013/03/06(水) 03:10:19.77
おまえらは補欠なのにな。

853 :デフォルトの名無しさん:2013/03/06(水) 03:48:43.93
「正規」ってーと「正式な」とか「正しい」ってイメージなんだよな。
だから「正規雇用」だと「正式な雇用」っ感じで感覚的にも落ち着くんだよな。
だけど、「正式な表現」だと、ニュアンス変わってきちゃうし、
「正しい表現」も何か違うんだよな。
そうすると違和感から余計なことを考えてしまうんだよ。

854 :デフォルトの名無しさん:2013/03/06(水) 04:56:51.28
有理数、無理数
無理な数?

855 :デフォルトの名無しさん:2013/03/06(水) 06:12:29.60
「ことわり(理)のない(無)かず(数)」ですな。

856 :デフォルトの名無しさん:2013/03/06(水) 07:04:31.31
>>853
正しく規則的である、と受け入れてしまえば何てことはない。

857 :デフォルトの名無しさん:2013/03/06(水) 07:10:08.34
・正しい規則
・規則正しい

これが同じだと思える知能って・・

858 :デフォルトの名無しさん:2013/03/06(水) 07:13:29.12
あ、「ただしく」でなくて「まさしく」ね。
これぞまさしくほうそくにのっとったやりかたである、みたいなね。

859 :デフォルトの名無しさん:2013/03/06(水) 09:34:35.86
訳なんかするからだろ
プログラムもライブラリもみんなそのまま使ってるんだからレジェックスのままでいいんだよ
レジェックスを正規表現と訳すのは、ライブラリを図書館と訳すのと同じ愚行

860 :デフォルトの名無しさん:2013/03/06(水) 09:43:15.05
ネイサン「きいてくれよリンディ、僕が昨日コンパイルしたソフトウェアが起動しないんだ」
リンディ「まあそれは大変ねネイサン、エラーは何て出たの?」
ネイサン「ああ、"図書館が見つかりません"って出たんだ、僕には何が何やら・・・」
リンディ「あなたのソフトウェアで使う全ての図書館はソフトウェアから見える位置にあるのかしら?」
ネイサン「ちょっと待ってくれよ、図書館・・・図書館・・・ああ!なんてことだ!一つの図書館が他のディレクトリに入っているよ」
リンディ「図書館の問題は解決したわねネイサン、よかったわ」
ネイサン「ああ、君のお陰だよ、感謝するよリンディ」

861 :デフォルトの名無しさん:2013/03/06(水) 09:46:10.67
>>859
図書館は良いだろ
他になんて言うんだよ

862 :デフォルトの名無しさん:2013/03/06(水) 09:54:15.39
街中にあるライブラリを図書館と訳すのはいいけど
プログラムの分野におけるライブラリを図書館と訳すのはおかしい
同様にレギュラーエクスペクションを正規表現と訳すのはおかしい

863 :デフォルトの名無しさん:2013/03/06(水) 09:54:25.20
>>861
正規表現ライブラリを訳して正規表現図書館にする馬鹿か?

こういう意味って分からない知能なのね。

864 :デフォルトの名無しさん:2013/03/06(水) 09:57:52.58
>>863が議論に参加できてない。

もうちょっと優しくしてやってくれ。

865 :デフォルトの名無しさん:2013/03/06(水) 10:01:43.62
>>863
そういう話してないだろ?いいからケツの力抜けよ

866 :デフォルトの名無しさん:2013/03/06(水) 10:06:33.46
もうレギュラーエクスペクションでいいよ

867 :デフォルトの名無しさん:2013/03/06(水) 10:07:14.95
>いいからケツの力抜けよ
漏れちゃう!><

868 :デフォルトの名無しさん:2013/03/06(水) 10:10:08.52
>>867
大丈夫だ、漏れる前に入っていくから問題ない

869 :デフォルトの名無しさん:2013/03/06(水) 10:12:40.32
アナルって気持ちいいの?

870 :デフォルトの名無しさん:2013/03/06(水) 10:22:41.26
気持ちいいよ。
一度味わったら抜け出せない。
いわゆる女の犯されるって感覚。

871 :デフォルトの名無しさん:2013/03/06(水) 10:25:21.72
あーなるほど

872 :デフォルトの名無しさん:2013/03/06(水) 10:50:04.73
アナルは性器に含まれますか?

873 :デフォルトの名無しさん:2013/03/06(水) 11:17:09.74
モザイクがかからないから違う

874 :デフォルトの名無しさん:2013/03/06(水) 11:37:40.06
俺以外変態しかいないのかこのスレは

875 :デフォルトの名無しさん:2013/03/06(水) 11:40:06.66
秘密変態アナレンジャー

876 :デフォルトの名無しさん:2013/03/06(水) 11:46:18.06
>>874
一回アナルやってみろって
男にハメられるのが嫌なら上王様にペニバンでやってもらえ

877 :デフォルトの名無しさん:2013/03/06(水) 13:46:31.87
アーカイブってなに?
「図書館みたいなものだ」

878 :デフォルトの名無しさん:2013/03/06(水) 15:04:25.84
スレチだけど、
オブジェクト指向絡みの単語を和訳しなかった時点で、
日本の情報産業は終わったと思うわ。

訳は微妙だとしても正規表現(正則表現)はまだマシ。

879 :デフォルトの名無しさん:2013/03/06(水) 15:09:17.03
物至上主義

880 :デフォルトの名無しさん:2013/03/06(水) 15:12:46.93
>>878
KnuthのThe Art of Computer Programmingの旧翻訳版を読んでみて、それでも同じことが言えるかなw

881 :デフォルトの名無しさん:2013/03/06(水) 16:21:21.10
            〉:::::::::ノ   ゝ:::::::::ノ   ゝ:::::::::イ
            「`ヽ′`}´       ` ´       イ V--、
           }::::,    ::ヘ           /:/  :,:::/
           ゞ:{     Vヘ、           / /   |/
          「::{::)   \::〉         〈::/   () |フ
          `{                    j
            }r‐ 、                ,′
           ハ{ ハ \               /イ /
            | ‘,  ヽ ヽ          // : ハ
            |  '. }、 !         j {ィ ‖ }
           /   い〉{ |          〈ノ.:,′/       呼んだ?
           .′   ヽ J{         { {/ / ,ハ
.       ィ /      ‘, ´  ------  ` /     }\
      /  .{       ‘,/        ヽ /    }  丶
     /    }      /  、   |  ,   ‘,    j      \
   ´              {   ゝ __|__,ノ    }              '.
/               、 ―‐ ´{ ゝ-- ,ノ  /        }
                   `  ..,,______,,... ´  /           .′
                \             /       /     /

882 :デフォルトの名無しさん:2013/03/06(水) 16:21:46.86
>>880
読んだことないから知らないんだけど、
オブジェクトやメッセージってなんて和訳されてるの?

あまりにひどい和訳で、しかも誰も、より良い言い換えができなかったから、
現状の和訳の放棄に至ってるんだと思うけど…。

883 :デフォルトの名無しさん:2013/03/06(水) 16:26:56.54
もうJISにはいってたら、翻訳者は、訳語を創造できない

884 :デフォルトの名無しさん:2013/03/06(水) 17:52:02.97
あなるのいいところは射精と違ってイッてもイッても醒めないところだな。

連続でイかされると体のコントロールが利かなくなって半狂乱になるよ。

AVでよくAV嬢が半狂乱になってる演技してるけど、まさにあの状態になる。

失禁したりもするけどもう恥ずかしいとかそれどころじゃない。

本気で気がふれそうになる。

885 :デフォルトの名無しさん:2013/03/06(水) 18:18:35.64
アヘアヘアヘ

886 :デフォルトの名無しさん:2013/03/06(水) 18:21:19.00
安定のくだらなさw

887 :デフォルトの名無しさん:2013/03/06(水) 18:23:00.47
アナフィラキシー

888 :デフォルトの名無しさん:2013/03/06(水) 18:24:13.57
 8 8 8

889 :デフォルトの名無しさん:2013/03/06(水) 19:57:34.66
>>885
アヘアへどころじゃないぞ。

全身の筋肉に限界まで力が入って、勝手に体が悶える。

喘ぎ声というより呻き声が出る。

唾液を飲み込むこともできなくなる。

コントロール利かないから逃げることもできない。

890 :デフォルトの名無しさん:2013/03/06(水) 20:32:33.09
NHKが正規表現特集でBPOに電話殺到
http://uni.2ch.net/test/read.cgi/newsplus/1362566765/

891 :デフォルトの名無しさん:2013/03/06(水) 23:13:49.45
>>851
なるほど、「regular lesson」ってのは「性器のレッスン」って意味になるのか…(*´д`*)ハァハァ

892 :デフォルトの名無しさん:2013/03/07(木) 00:04:37.77
>>891
正規表現厨のふりしたレギュラーエクスプレッション厨はさっさと失せろ

893 :デフォルトの名無しさん:2013/03/07(木) 00:37:19.02
>>884>>889
あなた本気で言っているみたいだから忠告するけど(スレ違い御免)、過度の肉体的快感を繰り返し経験すると、廃人になりかねないよ。

脳の快感物質が過度に放出されると、反動で快感物質のレセプターが破壊されるから、日常的には相対的に不幸な状態になる。

AV女優についてはあながち演技ではなく、自殺したり不幸になる人が少なくないのがそれを物語っている。

894 :デフォルトの名無しさん:2013/03/07(木) 00:49:16.60
しゃぶしゃぶ脳ですねわかります

895 :デフォルトの名無しさん:2013/03/07(木) 00:58:40.25
>>893
昼間なんかだるいのとか常に眠いのって関係ある?

896 :デフォルトの名無しさん:2013/03/07(木) 01:58:00.27
こんな時間に起きてたら昼間眠たくなっても不思議じゃない。

897 :デフォルトの名無しさん:2013/03/07(木) 02:13:51.65
ギャフン!

898 :デフォルトの名無しさん:2013/03/07(木) 12:10:22.90
アニキとやったら30分くらい経ってから精子が漏れてきたりするから困る
30分くらいでは締まりも戻りきってないから帰りの電車の中で染み出してきたりするとマジで困る

899 :デフォルトの名無しさん:2013/03/07(木) 13:10:50.38
たまに座席に染みをつけてるのはお前か。

900 :デフォルトの名無しさん:2013/03/07(木) 14:05:11.87
お前らそんなに性器がすきなら
今週末の日曜日(10日)の「ほだれ祭り」に行って来いよ。
http://www.tochio.net/hodare/

http://www.circus-net.jp/wp-content/uploads/CIMG8420%281%29.jpg
http://www.circus-net.jp/wp-content/uploads/CIMG9009%282%29.jpg

901 :デフォルトの名無しさん:2013/03/07(木) 15:32:03.33
いくら気持ちよくても角刈りガチムチ黒光りの兄貴に掘られるのはゴメンだ

902 :デフォルトの名無しさん:2013/03/07(木) 15:45:28.44
じゃあ猫耳カチューシャとしっぽ付けた20歳で身長154cmの萌え声眼鏡っ子お姉さんにペニバンで掘ってもらえばいいだろうが。
ペニバンなら太さも長さも形状も自由自在、兄貴のよりはるかに太くてイボのついたペニバン着けてもらってそのお姉さんのねっとりした腰の動きで鳴かせてもらえ。

903 :デフォルトの名無しさん:2013/03/07(木) 16:56:22.05
春休みなんだな

904 :デフォルトの名無しさん:2013/03/07(木) 17:13:56.47
春休みはホモが湧くのか…

905 :デフォルトの名無しさん:2013/03/07(木) 17:30:51.03
春だからな

906 :デフォルトの名無しさん:2013/03/07(木) 17:36:18.88
ホモが湧く→春休み

どういうwwwwwwwwwwwwww

907 :デフォルトの名無しさん:2013/03/07(木) 17:50:13.98
徒党を組んで荒らしてるよな。
ホント、1レスいくらで荒らしてんじゃないかと。

908 :デフォルトの名無しさん:2013/03/07(木) 18:15:56.82
>>906
薔薇科の花は春からが見頃だからな

909 :デフォルトの名無しさん:2013/03/07(木) 19:13:37.81
ホモじゃなくてアナルだと思うんですが・・・

910 :デフォルトの名無しさん:2013/03/07(木) 20:58:00.00
>>909
え?アナルローズ?

911 :デフォルトの名無しさん:2013/03/07(木) 21:05:57.86
あのな、アナルなんてやったらチンコ抜いた時に猛烈なウンコ臭がして普通は2度とやらなくなるんだよ。
たまに事前の浣腸がうまくいかなくてチンコがウンコまみれになることもあるし。
そういうのを何度か経験して最早それが平然というかそれによって逆に興奮するぐらいにならないと楽しめないよ。

912 :デフォルトの名無しさん:2013/03/07(木) 21:14:33.91
YYYYMMDD-99 というのを判定する場合は下記で大丈夫でしょうか?

^[0-9]{8}[\-][0-9]{2}$

913 :デフォルトの名無しさん:2013/03/07(木) 21:23:21.84
やってみろよ

914 :デフォルトの名無しさん:2013/03/07(木) 21:31:49.08
>>913
嫌だよ
うんこ臭くなるんだろ?

915 :デフォルトの名無しさん:2013/03/07(木) 21:36:49.93
>>912
なんでやらずにきくの?
やったほうがはるかに早いと思うけど
馬鹿なの?

916 :デフォルトの名無しさん:2013/03/07(木) 21:37:39.74
^
>>YYYY
(19|20)
\d{2}

>>MM
(
0[1-9]
|1[0-2]
)

>>DD
(
0[1-9]
|[12]\d
|3[01]
)

>>-
-

>>99
\d{2}
$

917 :デフォルトの名無しさん:2013/03/07(木) 21:55:02.79
>>916
キモい

918 :デフォルトの名無しさん:2013/03/07(木) 22:50:19.40
>>917
×

>>916
31日ない月はどうすればいいですか?

919 :デフォルトの名無しさん:2013/03/07(木) 23:32:49.99
>>918
コードコピペの基地害は消えろ
お前みたいな基地害がスレの質を低下させてんだ自覚しろ

920 :デフォルトの名無しさん:2013/03/07(木) 23:48:59.25
>>918はスレ潰すためにやってんのにそんなこと言われましてもwwwwwwww

921 :デフォルトの名無しさん:2013/03/07(木) 23:49:51.33
>>918

^(
(20(1[0-3]|0[0-9])|19[0-9]{2})(1[0-2]|0[0-9])
((0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])(29|30)|(0[13578]|1[02])31)
|
(19(0[48]|[2468][048]|[13579][26])|20(12|0[048]))0229
)
-[0-9]{2}$

922 :デフォルトの名無しさん:2013/03/07(木) 23:53:44.10
↓さぁコード乞食のゴミが他人に丸投げしたお礼を書き込みます、みんなで哀れみましょうw

923 :デフォルトの名無しさん:2013/03/08(金) 00:58:13.26
このスレ普通だとつまんねーな

924 :1/2:2013/03/08(金) 01:56:23.84
正規表現を作ってください。言語はPHPです。

 りんご 150円 3個で 400円 (値引き 50円) 5個で 500円 (値引き 250円)

上記の「金額部分」を

 文字列 $ringo = '150/400/50/500/250' ;// 「/」による区切り
または
 変数 $ringo_1 = '150'、$ringo_3 = '400'、$nebiki_3 = '50'、$ringo_5 = '500'、$nebiki_5 = '250'
または
 配列 $ringo[0] = '150'、$ringo[1] = '400'、$ringo[2] = '50'、$ringo[3] = '500'、$ringo[5] = '250'
のように代入される正規表現を作ってください。

925 :2/2:2013/03/08(金) 01:57:23.63
●補足
常に 「りんご1個の価格 → りんご3個の価格 → りんご3個の値引き金額 → りんご5個の価格 → りんご5個の値引き金額」 という流れです。
歯抜けになる場合も対応可能な式でお願いします。
金額設定が無い部分は空で残るようにお願いします。

■例) りんご3個が抜ける場合。

 りんご 150円 5個で 500円 (値引き 250円)

  ●希望する結果
  文字列 $ringo = '150///500/250' ;
  または
  変数 $ringo_1 = '150'、$ringo_3 = ''、$nebiki_3 = ''、$ringo_5 = '500'、$nebiki_5 = '250'
  または
  配列 $ringo[0] = '150'、$ringo[1] = ''、$ringo[2] = ''、$ringo[3] = '500'、$ringo[5] = '250'

■例) 値引きが無い場合。

 りんご 150円 3個で 450円 5個で 750円

  ●希望する結果
  文字列 $ringo = '150/450//500/' ;
  または
  変数 $ringo_1 = '150'、$ringo_3 = '450'、$nebiki_3 = ''、$ringo_5 = '750'、$nebiki_5 = ''
  または
  配列 $ringo[0] = '150'、$ringo[1] = '450'、$ringo[2] = ''、$ringo[3] = '750'、$ringo[5] = ''

926 :デフォルトの名無しさん:2013/03/08(金) 02:01:50.01
>>924-925
宿題は自分でやれ精神障害

927 :924-925:2013/03/08(金) 02:13:07.10
重要なことを書き忘れ。

検索前の文字列は

"りんご 150円 3個で 400円 (値引き 50円) 5個で 500円 (値引き 250円) (値引き 0円)(値引き 50円)(値引き 100円)(値引き 200円)"

と、文字列後半に無駄に関係のない「(値引き xx円)」という文字列がくっついています。

ですから上手く必要な金額だけを抽出できないので質問させていただきました。
よろしくお願いします。 m(_ _)m

928 :デフォルトの名無しさん:2013/03/08(金) 02:15:24.77
>>927
誰も回答しないから重要じゃないよ。
早くプロバイダ解約してね。

929 :デフォルトの名無しさん:2013/03/08(金) 02:37:54.91
>>928
アナルジャンキーは黙って浣

930 :デフォルトの名無しさん:2013/03/08(金) 02:43:54.79
そうだ!

みんなで浣腸だ!

深夜の浣腸パーティー!

931 :デフォルトの名無しさん:2013/03/08(金) 02:48:13.25
>>927
> と、文字列後半に無駄に関係のない「(値引き xx円)」という文字列がくっついています。
それを先に削除してしまえばいい。

932 :デフォルトの名無しさん:2013/03/08(金) 02:48:32.17
>>924
                                /⌒ヽ⌒ヽ
                                       Y
                                    八  ヽ
                             (   __//. ヽ,, ,)
                              丶1    八.  !/
                               ζ,    八.  j
                                i    丿 、 j
                          ,. -‐=≦=|     八   |=≧=‐- 、
                        /´      !    i 、       `ヽ
  .,v─ーv_                 .{:::.:  ,:.    i し " i   '    .:、  :.:::}
..,i(厂  _,,,从vy               |::.:.: l::.   ノ (   i    i    .::l . :.:.::|
..l  ,zll^゛″  ゛ミ             ∧:.:... i::,    '~ヽ   !       .::i ...:.:∧
..《 il|′     フーv,_          !: :ヽ:. ::. . ..:. ,. |     i   .l .、.:.. . .:: .:ノ: :!              _( "''''''::::.
 \《 ヽ     .゛li ._¨''ーv,,_      {       ノ|      !   || ヽ      } __ ____,,,... --‐'''^~   ヽ   ゛゛:ヽ
   \ ,゛r_    lア'    .゛⌒>-vzトヽ     / }.|    │    | { \    ノ⌒:::....:""""  ・    ・  . \::.   丿
     ゛'=ミ:┐  .「      ./ .^〃         ,i|       |    | |  i、     :::::::::::::::::::       ・  ....:::::::彡''ヘ::::/
      ゛\ア'   .--  ,,ノ|           ノ|       |   | |  ヽ    :::::::::::::::::::::::::::::;;;;;,, ---‐'' "^

933 :デフォルトの名無しさん:2013/03/08(金) 02:49:33.48
>>924
        ゛^ー、,,,¨ -   ''¨.─        / |        !    | |    ̄ ―-‐‐ ''^~
            ^ー-v、,,,_,:_____/ ,;-‐'′            `'‐-;,
                          /                \
                            /       ノ;; ,.‐ ;;-.;i       \
                       ,/       ,;-/;;; /' ''   ;;;X;,      ヽ
                           i'  /_,,;-‐''  |;;  ;i;;.. 〜  ;;| ''‐-;,,_\_  'i
                           i   `i     X〜 ;i;;; ;;,. ;;;/      i'     i
                         |    |     ヽ;;__\_;;/      |   |
                        |   ,!                  .l、  |
                       |   {                  }   .|
                       ノ   i                   i   {
                    c_'____)                  (___'_っ

934 :デフォルトの名無しさん:2013/03/08(金) 02:51:49.62
>>931
お前みたいに自己顕示欲の強い馬鹿がコミュニティを駄目にするんだろうな。
計画的なのか本物の馬鹿なのか分からんが。

935 :デフォルトの名無しさん:2013/03/08(金) 03:01:28.10
確実に本物の馬鹿だよ。自分で言うのだから間違いない。

936 :>>924-925:2013/03/08(金) 03:03:53.86
>>931
先に無駄な部分を先に削除と ....φ( . . ) メモメモ

無駄な部分を削除して >>924-925 の例えのような行に整形されました。
ここから金額部分を文字列や変数や配列に代入する方法を教えて下さい。
mb_ereg_replace を使って 1行の正規表現の式で間に合わすのは可能でしょうか?

937 :デフォルトの名無しさん:2013/03/08(金) 03:35:29.44
お前に浣腸してやりたい気分だ

938 :デフォルトの名無しさん:2013/03/08(金) 09:37:50.20
この板はプログラムを作る人たちのための板であって
馬鹿質問に答えるだけの知恵袋板ではない

939 :デフォルトの名無しさん:2013/03/08(金) 11:35:42.30
>>925
ttp://ideone.com/pqAumD

940 :デフォルトの名無しさん:2013/03/08(金) 11:39:21.76
丸かじり一つ入りましたー

941 :デフォルトの名無しさん:2013/03/08(金) 12:48:43.29
>>936
普通の人には可能でも
キチガイのお前には無理





今、「一応可能なんだ!」って思っただろ
キチガイのお前には無理

942 :デフォルトの名無しさん:2013/03/08(金) 13:48:01.89
>>936はチョン

943 :デフォルトの名無しさん:2013/03/08(金) 18:18:11.74
>>936















ウザい消えろ

944 :デフォルトの名無しさん:2013/03/08(金) 19:53:51.14
>>936
顔文字とかつけてアホな質問してんじゃねーぞ池沼
アホな質問に回答する奴も程度が低いってことを理解しとけよ馬鹿雑魚童貞

945 :デフォルトの名無しさん:2013/03/08(金) 19:59:29.57
>>936
そこまでずらずらと書いて自分で考えることは他人任せって
お前ほんとに日本人の頭?

946 :デフォルトの名無しさん:2013/03/08(金) 20:03:15.30
>>936
こういうバカげた質問にも答えるバカが居るから
ヤフー知恵袋感覚で気軽にでも質問すれば解決すると思ってレス乞食の馬鹿質問者がわんさか出てくる
で、ひとつのコミュニティが糞化していくんだよな

947 :デフォルトの名無しさん:2013/03/08(金) 20:27:24.05
PHPスレはがんばらなくていいのかな

948 :>>924-925 ◆KpRaDD444ILO :2013/03/08(金) 20:40:04.02
>>939
ありがとうございます!

すごい正規表現だなぁ・・・・。1行でできている点も希望通りで大満足しています。
作っていただいた正規表現は今回だけにとどまらず、ずっと先まで応用していくつもりです。
また正規表現の部分だけでなく、全体の作りも普段自分が作るものと違っており、
こちらもすごく興味深く勉強になります。
作っていただいたスクリプトを見て、美しいものを見ていると同じ気分を感じています。
週末は作っていただいたスクリプトを題材にして勉強会を開きます。
今後作る自作PHPスクリプトの幅が大きく広がると同時に高度なものになるような気がして
わくわくしています。
2ちゃんねるではたまに優れた人をみかけますが、このスレに優れた人がいた。
本当にありがとうございました。

949 :デフォルトの名無しさん:2013/03/08(金) 20:43:04.51




950 :デフォルトの名無しさん:2013/03/08(金) 21:00:22.30
ほめ殺しに挑戦してみたのかな

951 :デフォルトの名無しさん:2013/03/08(金) 21:43:17.49
>今後作る自作PHPスクリプトの幅が大きく広がると同時に高度なものになるような気がして
お前みたいな糞質問してる奴の天井はすでに見えてるけど
本気で書いてないよな?

952 : ◆KpRaDD444ILO :2013/03/08(金) 21:56:50.70
回答のスクリプトは柔軟性を持たせていつまでも価値を失わない構造になっています。
それがすごいなと。本当にすごい。

荒れるといけませんのでスレを離れます。
お世話になりました。失礼致します。m(_ _)m

953 :デフォルトの名無しさん:2013/03/08(金) 22:16:08.31
うわーこいつきもいよー
確実にきもいよー

954 :デフォルトの名無しさん:2013/03/08(金) 22:18:39.11
せやな

955 :デフォルトの名無しさん:2013/03/09(土) 05:12:39.58
こいつをうちで時間給で働かせるとしたら、給料は半分しか払いたくないな

956 :デフォルトの名無しさん:2013/03/09(土) 14:47:42.65
このゴミに半分も出す>>955が仏に見える

957 :デフォルトの名無しさん:2013/03/09(土) 16:37:04.74
文字列による性器表現で特に卑猥なものは何がありますでしょうか?
先週官能小説を書き始めたばかりの初心者ですがご教示お願い致します

958 :デフォルトの名無しさん:2013/03/09(土) 16:41:33.71
蜜壺

959 :デフォルトの名無しさん:2013/03/09(土) 16:41:57.44
おちんちんびろーん

960 :デフォルトの名無しさん:2013/03/09(土) 16:45:59.65
男根

961 :デフォルトの名無しさん:2013/03/09(土) 16:49:14.72
女の花弁

962 :デフォルトの名無しさん:2013/03/09(土) 16:54:06.35
秘唇

963 :デフォルトの名無しさん:2013/03/09(土) 17:22:14.53
ヒクヒクと息づくアワビ

964 :デフォルトの名無しさん:2013/03/09(土) 17:36:38.40
あっぐぅ〜〜〜!!!!
イグゥ〜!!!!
アへ・・・・・

965 :デフォルトの名無しさん:2013/03/09(土) 18:19:35.13
マン穴

966 :デフォルトの名無しさん:2013/03/09(土) 18:45:58.00
マンホール

967 :デフォルトの名無しさん:2013/03/09(土) 18:57:10.48
オナホ

968 :デフォルトの名無しさん:2013/03/09(土) 23:34:47.39
淫液を溢れさせる肉唇

969 :デフォルトの名無しさん:2013/03/09(土) 23:52:02.61
赤いびらびら

970 :デフォルトの名無しさん:2013/03/10(日) 03:53:09.22
s/./淫/g

971 :デフォルトの名無しさん:2013/03/10(日) 06:57:30.23
お前ら全員壇蜜にしてやる

972 :デフォルトの名無しさん:2013/03/10(日) 09:33:50.45
してくれ!

973 :デフォルトの名無しさん:2013/03/10(日) 09:51:17.83
どす黒いびらびら

974 :デフォルトの名無しさん:2013/03/10(日) 16:32:21.34
マン肉

975 :デフォルトの名無しさん:2013/03/10(日) 20:16:16.01
Regular Expression(正規表現) Part11
http://toro.2ch.net/test/read.cgi/tech/1362913813/

976 :デフォルトの名無しさん:2013/03/10(日) 23:33:30.23
女肉

977 :デフォルトの名無しさん:2013/03/10(日) 23:42:37.74
下のお口

978 :デフォルトの名無しさん:2013/03/11(月) 00:02:05.55
ちんぽ吸い付き

979 :デフォルトの名無しさん:2013/03/11(月) 01:25:47.73
ンギモッヂイイ!!

980 :デフォルトの名無しさん:2013/03/11(月) 01:28:34.65
ヤリマン

981 :デフォルトの名無しさん:2013/03/11(月) 04:02:04.87
性器で埋めとくわ

982 :デフォルトの名無しさん:2013/03/11(月) 09:00:43.34
まあなんていやらしいスレッド

983 :デフォルトの名無しさん:2013/03/11(月) 10:19:57.51
くぱぁ

984 :デフォルトの名無しさん:2013/03/11(月) 10:39:46.57
あんあんいくー

985 :デフォルトの名無しさん:2013/03/11(月) 11:27:04.38
ぷるるん

986 :デフォルトの名無しさん:2013/03/11(月) 11:50:53.15
おっぱいは性器ではない

987 :デフォルトの名無しさん:2013/03/11(月) 17:05:00.54
コーマン機動隊

988 :デフォルトの名無しさん:2013/03/11(月) 20:01:41.46
うめ

989 :デフォルトの名無しさん:2013/03/11(月) 20:02:50.17
うめぼし

990 :デフォルトの名無しさん:2013/03/11(月) 20:03:25.60
()


991 :デフォルトの名無しさん:2013/03/12(火) 01:34:09.26
性的割れ目噴火

992 :デフォルトの名無しさん:2013/03/12(火) 20:47:44.57
うめ

993 :デフォルトの名無しさん:2013/03/12(火) 21:45:21.14
うめぼし

994 :デフォルトの名無しさん:2013/03/12(火) 22:19:30.40
うめぼしババア

995 :デフォルトの名無しさん:2013/03/12(火) 22:23:33.16
見て肛門

996 :デフォルトの名無しさん:2013/03/12(火) 22:29:19.04
入れて肛門

997 :デフォルトの名無しさん:2013/03/12(火) 22:35:26.87
腕入れて肛門

998 :デフォルトの名無しさん:2013/03/12(火) 22:44:47.57
肛門JAPAN!

999 :デフォルトの名無しさん:2013/03/12(火) 22:54:49.79
百万本のバラのアナル〜
あなたにあなたにあなたに見せる〜

1000 :デフォルトの名無しさん:2013/03/12(火) 22:57:24.75
NO ANAL, NO LIFE

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

230 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)