正規表現 Part9at TECH
正規表現 Part9 - 暇つぶし2ch2:デフォルトの名無しさん
11/12/11 10:19:38.70


犬猫子供を出せば、馬鹿は見るだろ?
 某テレビ局在日社員



3:デフォルトの名無しさん
11/12/11 10:19:56.63
◆関連サイト
正規表現メモ
URLリンク(www.kt.rim.or.jp)
Perl正規表現雑技
URLリンク(www.din.or.jp)
Regular Expression(Riue ちゃんの正規表現講座)
URLリンク(www.sixnine.net)
正規表現パズル
URLリンク(www.geocities.jp)
詳説 正規表現
URLリンク(www.oreilly.co.jp)
正規表現プログラミングFAQ
URLリンク(capslockabcjp.kitunebi.com)
JScript 正規表現の概説
URLリンク(msdn.microsoft.com)
.NET Framework 正規表現言語要素
URLリンク(msdn.microsoft.com)
【 初心者 】 正規表現 【 入門 】
URLリンク(funcchan.blog16.fc2.com)

4:デフォルトの名無しさん
11/12/11 10:20:14.78
◆関連スレ
[UNIX板] 正規表現
スレリンク(unix板)
[WebProg] 正規表現道場
スレリンク(php板)

◆前スレ
[1] スレリンク(tech板)
[2] スレリンク(tech板)
[3] スレリンク(tech板)
[4] スレリンク(tech板)
[5] スレリンク(tech板)
[6] スレリンク(tech板)
[7] スレリンク(tech板)
[8] スレリンク(tech板)

5:デフォルトの名無しさん
11/12/11 10:20:30.40
スルーされにくい質問のテンプレと例

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

●検索か置換か?
検索

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

●対象データ
ABCA
BCAA
CABA

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

6:デフォルトの名無しさん
11/12/11 17:26:51.35
^.*?A

7:デフォルトの名無しさん
11/12/11 20:38:47.00
>>6
どうした?

8:デフォルトの名無しさん
11/12/11 20:47:52.13
ただの5に対する解答例なんじゃないの

9:デフォルトの名無しさん
11/12/11 21:33:05.40
つか

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

これわかりにくいだろ
アンダーラインのつもりだったのかよ

10:デフォルトの名無しさん
11/12/11 21:41:11.54
アンダーラインのつもりであることはわかるだろ。

11:デフォルトの名無しさん
11/12/11 22:20:26.34
^^;

12:851
11/12/11 23:27:56.52
>>939
perlのオプションが2種類あることを知らないで適当書いてしまいました、申し訳ない..

>>998
ご指摘ありがとうございました

13:デフォルトの名無しさん
11/12/12 16:43:32.38
preg_match関数
URLリンク(jp2.php.net)
>flags には以下のフラグを指定できます。
>PREG_OFFSET_CAPTURE
>このフラグを設定した場合、各マッチに対応する文字列のオフセットも返されます。 これにより matches の値は配列となり、 配列の要素 0 はマッチした文字列、 要素 1は対象文字列中におけるマッチした文字列のオフセット値 となることに注意してください。

PHPの話です。
この、PREG_OFFSET_CAPTUREという機能がすごく有り難いのですが、、
この機能は、preg_match関数だけにしかないのでしょうか?
PHPで他にもこの機能を持った関数はあるのでしょうか?
マルチバイトの関数でこの機能があれば有り難いのですが、なんかないですよね?

14:デフォルトの名無しさん
11/12/12 19:01:14.89
ググれ

15:デフォルトの名無しさん
11/12/14 02:34:01.67
性器表現

16:デフォルトの名無しさん
11/12/14 03:36:16.77
>>13
このスレに常駐してる奴にそんなこと分かるわけないだろ。

17:デフォルトの名無しさん
11/12/14 11:36:40.54
PHPはmb系列は鬼車なんだね。PCREしか使わないから知らなかった。

18:デフォルトの名無しさん
11/12/15 03:38:33.31
>>12
鬼車の再帰の作り方教えて

19:デフォルトの名無しさん
11/12/15 04:33:00.06
>>18
鬼車のマニュアル: URLリンク(www.geocities.jp)
技評の記事(3ページ目): URLリンク(gihyo.jp)

20:デフォルトの名無しさん
11/12/15 10:03:14.98
日本語で書かれたサイトはないの?

21:デフォルトの名無しさん
11/12/15 10:10:23.05
>>20
>19はどちらも日本語だと思うが。

22:デフォルトの名無しさん
11/12/16 05:45:43.65
なるほど、pcreの再帰は使い勝手悪いけど鬼車の再帰は使い易い。確かに鬼車なら簡単に書けますね。
括弧の数を数えるコードを書くほうが効率悪いかも。

23:デフォルトの名無しさん
11/12/16 10:16:24.49
以下の正規表現でよろしいでしょうか?
ご意見を頂ければ幸いです。

/(-1)|^[\d]+/

●正規表現の使用環境
PHP Version 5.1.6

●検索か置換か?
検索

●説明
金額の数値チェックですが、
負の数である-1のみ入力を許可します。
0は許可します。
-1, 0, 1, 2, ..., 10, ..., 100,

●対象データ
数値(金額)

●希望する結果
× -10

× -2
○ -1
○ 0

○ 10
○ 11


24:デフォルトの名無しさん
11/12/16 10:32:32.30
>>23
\A(?:-1|0|[1-9]\d*)\z

○0
×00
×000

25:デフォルトの名無しさん
11/12/16 20:06:59.35
>>23
数値をなぜわざわざ正規表現でチェックするの?

26:デフォルトの名無しさん
11/12/16 21:21:23.51
>>25
その方がif文より速い、と思い込んでるんだろうね

27:デフォルトの名無しさん
11/12/17 02:17:24.29
あー、そうか、単純にif文で文字列比較すればいいのか…

28:デフォルトの名無しさん
11/12/17 03:08:04.31
●正規表現の使用環境 windows google chrome
●言語JavaScript
●置換


●説明
以前このスレで教えてもらった表現が仕様変更で使えなくなったので再び尋ねにきました
以下のようにURLを置換する正規表現を教えてください

URLリンク(*.bp.blogspot.com)

URLリンク(*.bp.blogspot.com)


.replace(/^(http:\/\/[^/]+\.bp\.blogspot\.com\/(?:[^/]+\/){4)[^/]+\/([^/]+)$/i,"$s2048")

29:デフォルトの名無しさん
11/12/17 03:15:29.42
\sとホワイトスペースとされている[ \n\r\t\v\f]を比べたら違っていた。
\sには\vが含まれてない。
ホワイトスペースは明示的に指定した方が良いな。

30:29
11/12/17 03:30:16.80
>>29はPHPの最新版。
実際には\vが出てくる機会は無いんだろうけど。
万が一使われて不具合でる場合に、速度犠牲にしても明示的な指定が良いことはある。

31:デフォルトの名無しさん
11/12/17 03:38:09.84
>>28は自力で分かりましたので撤回します。

32:デフォルトの名無しさん
11/12/17 09:11:00.48
>>27
数値比較だろうがw

33:デフォルトの名無しさん
11/12/17 09:45:46.47

要件でのチェック処理はjavascriptでした。
改修前のソースが正規表現で書かれていたので、そこに固執していました。
ありがとうございます。

var num; // 画面からの入力
if ( num >= -1) {
  // 入力値OK
} else {
  // 入力値NG
}

34:デフォルトの名無しさん
11/12/17 11:29:20.09
文字が入力されたらどうするんだよ。


35:デフォルトの名無しさん
11/12/17 11:32:37.06
>>34

>●対象データ
>数値(金額)


36:デフォルトの名無しさん
11/12/17 11:46:23.91
1,000,000の点は考えなくていいのかな?

37:デフォルトの名無しさん
11/12/17 11:47:32.58
桁区切りのカンマ、小数点は入力時にエラーとして再入力を促します。

38:デフォルトの名無しさん
11/12/17 12:14:41.04
それなら楽勝だね、お疲れ。

39:デフォルトの名無しさん
11/12/17 12:34:48.56
>>37
変換(削除)してやれよ、それくらい。

40:デフォルトの名無しさん
11/12/17 14:52:29.17
それは外部者が言うことじゃない。

41:デフォルトの名無しさん
11/12/19 22:11:17.71
●正規表現の使用環境
c#

●検索か置換か?
検索

●説明
一番長い数字の連続を検索したいです

●対象データ
hogehoge120_hoge001218hoge1

●希望する結果
001218

42:デフォルトの名無しさん
11/12/19 22:18:10.47
\d+で数字列検索してプログラム使って最長判定
正規表現だけじゃ無理

43:デフォルトの名無しさん
11/12/19 23:00:23.94
string s = "hogehoge120_hoge001218hoge1";
string max = "";

foreach (Match m in Regex.Matches(s, "\\d+"))
  if (m.Value.Length > max.Length)
    max = m.Value;

Console.WriteLine(max);

44:デフォルトの名無しさん
11/12/19 23:10:12.46
>>42-43 ありがとん
やってみます。

45:デフォルトの名無しさん
11/12/20 03:52:43.40
人に利用される馬鹿が教えてくれるスレ

46:デフォルトの名無しさん
11/12/22 09:07:36.05
すみません。正規表現の

^\sd{4}$

とはどういう意味を表しているのでしょうか?

47:デフォルトの名無しさん
11/12/22 09:10:41.34
行頭があって空白文字があってdが4つあって行末

48:デフォルトの名無しさん
11/12/22 09:14:41.46
>>47
ありがとうございます。
ということは
[ 1234]
のような値でしょうか?

49:デフォルトの名無しさん
11/12/22 09:16:04.63
なぜd だけ そのままなのww

50:デフォルトの名無しさん
11/12/22 09:25:03.64
>>48
0-9のどれか1文字なら d じゃなくて \d
テンプレのリンクから一番やさしそうなの見つけて読んで

51:デフォルトの名無しさん
11/12/22 09:27:26.26
>>48
そういうのを「思い込み」と言う

52:デフォルトの名無しさん
11/12/22 09:33:46.25
>>50
ありがとうございます。
ということは
[ dddd]
なんですね。ということはこれはバグのような・・

53:デフォルトの名無しさん
11/12/22 10:22:43.30
ばっかじゃないの。

54:デフォルトの名無しさん
11/12/22 10:29:57.87
試してみました。[ dddd]がhitしてしまいました。

Dim oReg
Set oReg = New RegExp
oReg.IgnoreCase = False
oReg.Pattern = "^\sd{4}$"

If oReg.Test(" dddd") Then
msgbox "hit!"
Else
msgbox "ng"
End If


55:デフォルトの名無しさん
11/12/22 10:36:57.01
頭がバグってきた

56:デフォルトの名無しさん
11/12/22 10:40:21.24
試すだけなら
print "hit!" if (" dddd" =~ /^\sd{4}$/);
で十分。
べーしっくは大変ですなw

57:デフォルトの名無しさん
11/12/22 14:46:34.31
すぽぽーん!!

58:デフォルトの名無しさん
11/12/22 15:04:10.77
マッチって言おうぜ、ヒットって野球かよ。

59:デフォルトの名無しさん
11/12/22 15:21:10.19
>>58
マッチしてるんだからヒットで良くね?

60:デフォルトの名無しさん
11/12/22 17:07:10.08
トシちゃんでも何でもいいよ

61:デフォルトの名無しさん
11/12/22 21:51:46.32
こんばんわ、膝方 歳三です。


呼んだ?

62:デフォルトの名無しさん
11/12/22 23:34:54.98
ナウなヤングが多いスレですね

63:デフォルトの名無しさん
11/12/24 03:42:49.26
ヒットじゃなくて三振だな

64:デフォルトの名無しさん
11/12/28 12:07:44.21
鬼車使用

0001233C,ソレ・ナンテ・エロゲ<TAB>0001233C,Sore nante eroge
000123DD,買ってこい<TAB>000123DD,iyadesu
000123DD,なんだコノ・モノズキ<TAB>000123DD,Daisuki
<TAB>は実際にはタブに置き換え

こんな感じのタブと,で区切られたテキストがあるのですが

//ここから
0001233C,ソレ・ナンテ・エロゲ<TAB>0001233C,Sore nante eroge
,ソレ
,ナンテ
,エロゲ
000123DD,買ってこい<TAB>000123DD,iyadesu
000123DD,なんだコノ・モノズキ<TAB>000123DD,Daisuki
,なんだコノ
,モノズキ
//ここまで
<TAB>は実際にはタブに置き換え

と、したいのですがどのようにすれば正規表現で置換する出来ますか?
"・"の数がまちまちなのと、行全体は残しつつ次の行に分割することが出来ず悩んでいます

65:デフォルトの名無しさん
11/12/28 12:38:02.35
>行全体は残しつつ
行全体を同じ物で置換

66:デフォルトの名無しさん
11/12/28 12:45:21.06
>>64
鬼車に置換機能はないというのはおいとくとして、
数が不定という点で正規表現だけではどうにもならんな。
$1とかで取り出す以上、上限を決めるとかしないと。

67:デフォルトの名無しさん
11/12/28 13:23:02.79
>>65
()の中に()も出来るのか…なんでできないと思い込んでた。
行全体の方は解決できました。ありがとうございます。

>66
理解できてませんでした。サクラエディタ使ってます。
"・"の数は 無し,1個,2個 のいずれか。
現状でこんな感じのものを作ってみたのですが変な所で切れたり"・"が残ったりします
空白行は消すのであっても構いませんのですが、良い方法は在りませんか?

([0-9]{2}[a-zA-Z0-9]{6},(.+)・(.+)・?(.+)\t.+)
\1\r\n,\2\r\n,\3\r\n,\4\r\n

//ここから
0001233C,ソレ・ナンテ・エロゲ 0001233C,Sore nante eroge
,ソレ・ナンテ
,エロ
,ゲ

//ここまで

68:デフォルトの名無しさん
11/12/28 13:50:26.35
^([^,]+,([^・\t]+)・([^・\t]+)(?:・([^・\t]+))?\t.+)$


69:デフォルトの名無しさん
11/12/28 14:31:25.37
>>68
希望通りの分割が出来ました
良く分からない所があるのですがもう一度解説している所を読んで理解したいと思います
有難うございました

70:デフォルトの名無しさん
11/12/28 23:11:31.85
 [^・\t

顔文字に見えた。
堅め開けた、しわくちゃの老人

71:デフォルトの名無しさん
11/12/29 22:53:43.17
正規表現を使って、@マークが先頭にある半角数字に処理をかけたいと思っています。
ex.) @12345

ただ、データの中に「<a href=”~”>@12345</a>」のようにHTMLタグのリンクタグが付与している場合があり、その場合でもマッチするようにしたいです。
「<a href=”~”>@~</a>」でも「@~」でもマッチするようにするにはどうすればいいのでしょうか?

72:デフォルトの名無しさん
11/12/29 23:27:18.01
<a href="[^"]+">@\d+</a>|@\d+

こういうことかな?

いまいち質問がわかりづらい
次に質問するときはテンプレつかってくれ

73:デフォルトの名無しさん
11/12/29 23:34:40.12
鬼車なんてあったんだ隠語かと思ったら正式名称か

74:デフォルトの名無しさん
11/12/30 00:43:50.80
>>71
@\d+ でいずれもマッチするが、簡単すぎてどこで躓いているのかよくわからん


75:デフォルトの名無しさん
11/12/30 01:01:46.87
>>74
先頭じゃない場合もあるからじゃない?

76:デフォルトの名無しさん
11/12/30 01:02:54.62
ごめん行頭と読み違えた

77:デフォルトの名無しさん
11/12/30 06:36:35.31
>>73
このスレにいてRuby 1.9に使われてる正規表現エンジンの名前を知らんとはな。

スレのテンプレに、主要な正規表現ライブラリの紹介があってもいいかもしれない。

78:デフォルトの名無しさん
11/12/30 10:08:17.68
>>77
そんなのべたべた貼っても読まねぇ

79:デフォルトの名無しさん
11/12/30 20:39:29.00
正規表現のエンジンも色々あるからな
だからこそ環境書けと言われるワケで
逆に環境以上のことは蛇足じゃねーの

80:デフォルトの名無しさん
11/12/30 20:46:28.60
質問用テンプレということではないのだが。

81:デフォルトの名無しさん
11/12/30 21:57:21.07
このスレのレベルの低さは前スレ見れば分かる。回帰も知らないゴミの集まり。

82:デフォルトの名無しさん
11/12/30 22:00:14.08
>>72
無事希望通りなものができました。
また質問が出たときはテンプレ使って質問しようと思います。
ありがとうございました。

83:デフォルトの名無しさん
11/12/30 22:07:07.87
●検索か置換か?
置換

●説明
reverse関数のように、文字を逆順にする
対象は半角のみで、全角は使わないので考慮しないで構わない

●対象データ
114514
810snpi
go

●希望する結果
415411
ipns018
og


84:デフォルトの名無しさん
11/12/30 23:18:54.38
つreverse関数

85:デフォルトの名無しさん
11/12/31 14:29:13.56
C#で以下の文字列lineからURLを抽出したいと思っています。

 The document has moved <a href="URLリンク(www.hoge.com)">here</a>.

Match m = Regex.Match(line, "href=\"(URLリンク(\S))\"", RegexOptions.IgnoreCase);
↑そこでそういうプログラムを組んでみたのですが正規表現の部分でエラーが発生してコンパイルエラーになってしまいます。
正しくプログラムするにはどうしたらいいでしょうか?

86:片山博文MZ ◆0lBZNi.Q7evd
11/12/31 14:31:08.49
"href=\"(URLリンク(\S)<))\""が正しい。

87:デフォルトの名無しさん
11/12/31 14:32:06.62
\\

88:片山博文MZ ◆0lBZNi.Q7evd
11/12/31 14:32:19.57
間違えた。
"href=\"(URLリンク(\\S+))\""

89:デフォルトの名無しさん
11/12/31 14:44:16.90
urlを抽出する際に、httpsを考慮する必要はありませんか。

90:片山博文MZ ◆0lBZNi.Q7evd
11/12/31 14:47:23.37
(https?://\\S+)
そこまで考えるなら、パーサのHTML Tidyを使う。

91:85
11/12/31 14:57:57.85
みなさんアドバイスありがとうございます。
\をもう一つ付けることでコンパイルに無事成功しましたm(_ _)m

92:片山博文MZ ◆0lBZNi.Q7evd
11/12/31 15:23:43.32
+もつけないとマッチしないよ。。。

93:デフォルトの名無しさん
11/12/31 16:03:03.63
\Sを使うこと自体間違ってる。誤爆の可能性あるよ。

94:デフォルトの名無しさん
12/01/01 01:25:06.56
つうかC#なら@""使え

95:デフォルトの名無しさん
12/01/01 03:21:35.01
そういや@""の中で"を使うにはどうしたらいいんだろう?

96: 【大凶】 【85円】
12/01/01 08:55:00.69
エスケープできないの?
記号としての\を使いたい場合、\\になるように、
\"とかが用意されているのでは。

97:デフォルトの名無しさん
12/01/01 09:38:04.03
@"printf(""hello"")" みたいに " を二回続ける(スレチ)

98:デフォルトの名無しさん
12/01/01 15:31:57.27
詳細正規表現って本5040円もするけど安く手に入れられないかな。

99:デフォルトの名無しさん
12/01/01 15:41:01.14
>>98
アマゾンに\4,000(送料別)の中古があったよ

100:デフォルトの名無しさん
12/01/01 16:58:17.25
>>99
ありがとうです。でもまだ高いorz

101:デフォルトの名無しさん
12/01/01 17:24:17.39
●正規表現の使用環境
C#

●検索か置換か?
置換

●説明
文字列の先頭の部分のカッコを消したい

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

●希望する結果
hogeあいうえお

よろしくお願いします

102:デフォルトの名無しさん
12/01/01 17:27:41.94
^\((.*?)\)(.*)
\1\2

103:デフォルトの名無しさん
12/01/01 22:40:14.79
あけましておめでとう

●正規表現の使用環境
perl5

●検索か置換か?
置換

●説明
全角,句読点と半角の間を消したい
半角と半角は無視
●対象データ
みんなの憧れ Justin Drew Bieber が大好き
私だけの Justin が欲しい
やっぱ Bieber 、Bieber って響きがいいよね

●希望する結果
みんなの憧れJustin Drew Bieberが大好き
私だけのJustinが欲しい
やっぱBieber、Bieberって響きがいいよね


今までは([ぁ-煕]+)と([0-9A-Za-z]+)を組み合わせて何回もやっていたのですが
例題の1行目の様な物が煩わしいので一括に処理したいです
お願いします

104:デフォルトの名無しさん
12/01/01 22:58:24.51
[ ]*([ぁ-煕]+)[ ]*

\1

105:デフォルトの名無しさん
12/01/01 23:11:50.26
>104
ご回答ありがとうございます
しかし、それでは全角と半角の間以外のスペースも消えてしまうので
想定した動きと違います。ごめんなさい。

106:デフォルトの名無しさん
12/01/01 23:38:06.31
[ぁ-煕]ってUnicodeだと使えないがいいんかな。

107:デフォルトの名無しさん
12/01/02 13:39:42.23
文字列「犬」と「猫」を含む一行を検索するときは

(犬.*猫)|(猫.*犬)

と書けばいいですよね
では、文字列「犬」と「猫」と「鳥」と「牛」の全てを含む一行を検索する場合はどのように書けばいいのでしょうか?


108:デフォルトの名無しさん
12/01/02 13:56:54.73
if文使うのが計算量少ないと思う。
正規表現だけは諦めて。

109:デフォルトの名無しさん
12/01/02 14:02:57.11
このように一つでも見つからなければFALSEを返す関数。

A=array("犬", "猫", "鳥", "牛");

function hantei(str) {
for(n=0; n<count(A); n++) if(str.find(A[n])==FALSE) return FALSE;
return TRUE; }

110:デフォルトの名無しさん
12/01/02 14:07:39.08
(?=.*犬)(?=.*猫)(?=.*鳥)(?=.*牛)

111:104
12/01/02 14:47:35.93
>>106
たまに誤認識シてたのはそれだったのかも知れませんね
unicode対応らしい物を探してきました

・(英数字以外) (英数字)のパターン
([^([,?!-<>?….!々〇?\u3400-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF])]) ([々〇?\u3400-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF]+)
・(英数字) (英数字以外)のパターン
([々〇?\u3400-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF]+) ([^([,?!-<>?….!々〇?\u3400-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF])])

とりあえず個々には動作してるように見えるのですが、これをひとつに纏めつつ
「全 半 全」「全 半 半 全」「全 半全」「全半 全」を満たすように書き換えたいのですがそれがわかりません…

112:デフォルトの名無しさん
12/01/02 14:52:30.99
日本語のコードは正規表現で使わない方が良い。
検索対象の文字コードに依存する。
ASCIIだけの特徴を使って検索するのが、仕様変更などにも対応できる可能性。

113:112
12/01/02 15:03:03.29
こんなのやってみたが。消しきれず。

[  ]*(([0-9A-Za-z]+ ?){1,})[  ]*
\1

114:112
12/01/02 15:05:57.04
英文とその前後の空白にヒットさせるという方法だが、終わりの空白が取り除けない。

115:デフォルトの名無しさん
12/01/02 15:09:47.82
ほらよ

(犬.*猫.*鳥.*牛)|(犬.*猫.*牛.*鳥)|(犬.*鳥.*猫.*牛)|(犬.*鳥.*牛.*猫)|(犬.*牛.*猫.*鳥)|(犬.*牛.*鳥.*猫)|


116:112
12/01/02 15:11:27.97
これで例文はできた。

[  ]*(([0-9A-Za-z]+ ){0,}[0-9A-Za-z]+)[  ]*

\1

117:デフォルトの名無しさん
12/01/02 15:32:48.77
頭に犬が来ない場合はどうするのかと

118:デフォルトの名無しさん
12/01/02 15:46:13.41
>>117
最後が|だから、これからシリーズでUpしてくれるよ

119:デフォルトの名無しさん
12/01/02 15:58:19.28
24通り書く気かよw
十二支の場合はどうする気だよww

120:デフォルトの名無しさん
12/01/02 16:03:10.71
ループでそとつヒットしなかったら探索終了が速いって。
正規表現で全パターンは負荷かかりすぎ。

121:デフォルトの名無しさん
12/01/02 16:11:59.61
逆に、

^((?!犬).)*$|^((?!猫).)*$|^((?!馬).)*$|^((?!鳥).)*$

を削除すれば

122:デフォルトの名無しさん
12/01/02 16:18:48.97
(?:犬(?:(猫)?鳥牛(?(1)|猫)|(鳥)?猫牛(?(2)|鳥)|牛(?:猫鳥|鳥猫))|猫(?:(鳥)?牛犬(?(3)|鳥)|(牛)?鳥犬(?(4)|牛)|犬(?:鳥牛|牛鳥))|鳥(?:(牛)?犬猫(?(5)|牛)|(犬)?牛猫(?(6)|犬)|猫(?:牛犬|犬牛))|牛(?:(犬)?猫鳥(?(7)|犬)|(猫)?犬鳥(?(8)|猫)|鳥(?:犬猫|猫犬)))

123:デフォルトの名無しさん
12/01/02 16:21:22.32
どう見ても京都猛禽類研究所です。本当にありがとうございました

124:122
12/01/02 16:28:08.70
ごめん、質問をちゃんと見てなかったわ
これでおk
長すぎるって怒られたから改行しといた

(?:犬.*(?:(猫)?.*鳥.*牛.*(?(1)|猫)|(鳥)?.*猫.*牛.*(?(2)|鳥)|牛.*(?:猫.*鳥|鳥.*猫))|
猫.*(?:(鳥)?.*牛.*犬.*(?(3)|鳥)|(牛)?.*鳥.*犬.*(?(4)|牛)|犬.*(?:鳥.*牛|牛.*鳥))|
鳥.*(?:(牛)?.*犬.*猫.*(?(5)|牛)|(犬)?.*牛.*猫.*(?(6)|犬)|猫.*(?:牛.*犬|犬.*牛))|
牛.*(?:(犬)?.*猫.*鳥.*(?(7)|犬)|(猫)?.*犬.*鳥.*(?(8)|猫)|鳥.*(?:犬.*猫|猫.*犬)))

125:デフォルトの名無しさん
12/01/02 16:28:52.24
先読み使えるなら>>110でいいじゃん

126:デフォルトの名無しさん
12/01/02 16:29:46.90
>>116
試してみたのですが 「aaaaa - aaaaaa」 や 「aa aaaa」なども消えてしまいます
全角と半角の間のスペースを消すだけなので、例題に載せなかったのがいけなかったのかもしれません。
>104を正規表現で表現するのは難しいのでしょうか?
環境は多分utf-8なので条件依存していても構わないのですが。

127:126
12/01/02 16:31:28.71
>104を正規表現で表現するのは難しいのでしょうか?

>103を正規表現で表現するのは難しいのでしょうか?
に修正します。すみません

128:デフォルトの名無しさん
12/01/02 16:33:40.56
>>126
>しかし、それでは全角と半角の間以外のスペースも消えてしまうので
例えばどういうの?サンプルが少なすぎる

129:デフォルトの名無しさん
12/01/02 16:36:55.88
十二支の方が簡単そうじゃね
子・丑・寅・卯・辰・巳・午・未・申・酉・戌・亥だろ?

あまり使われなさそうな文字列をピンポイントで検索するとか

 → (戌.*亥)|(亥.*戌)

又は

 → (猪.*亥)|(亥.*猪)

とりあえず上のように検索してダメだったら別の文字列を変えればいい

130:デフォルトの名無しさん
12/01/02 16:38:57.88
>>126
半角の英文と見なす記号・文字を追加。これは-の場合。

[  ]*(([0-9A-Za-z\-]+ ){0,}[0-9A-Za-z\-]+)[  ]*

131:129
12/01/02 16:40:57.27
ちがうちがう

 → (戌.*亥)|(亥.*戌)

又は

 → (戌.*猪)|(猪.*戌)

だな
猪を二頭探してどうする俺w

132:デフォルトの名無しさん
12/01/02 16:47:50.36
 全[space] → 全
 [space]全 → 全

の2回に分けるのじゃだめ?

133:デフォルトの名無しさん
12/01/02 16:49:53.21
英文か、全角日本語しかないんだろ。
英文とその前後の空白を特定できれば済むんだよ。

134:デフォルトの名無しさん
12/01/02 16:59:35.64
>128
元データは出せないので書き換えましたがこんな感じです

<元>
みんなの憧れ Justin Drew Bieber が大好き
私だけの Justin が欲しい
やっぱ Bieber 、Bieber って響きがいいよね

Justin : お前が好きだよ。大好きだよ。

そう耳元で囁かれると 私 はトキメイた。
身も心も Justin Drew Bieber の物。

私はベットの布団の中で一人悶えていた。
May - Friday the 13th...

<後>
みんなの憧れJustin Drew Bieberが大好き
私だけのJustinが欲しい
やっぱBieber、Bieberって響きがいいよね

Justin : お前が好きだよ。大好きだよ。

そう耳元で囁かれると 私 はトキメイた。
身も心もJustin Drew Bieberの物。

私はベットの布団の中で一人、悶えていた。
May - Friday the 13th...


>132
それは>111ですよね。それしか無いでしょうか

135:デフォルトの名無しさん
12/01/02 17:02:25.21
スペース一個抜けてましたこっちです

<元>
みんなの憧れ Justin Drew Bieber が大好き
私だけの Justin が欲しい
やっぱ Bieber 、Bieber って響きがいいよね

Justin : お前が好きだよ。大好きだよ。

そう耳元で囁かれると 私 はトキメイた。
身も心も Justin Drew Bieber の物。

私はベットの布団の中で一人悶えていた。
May - Friday the 13th...

<後>
みんなの憧れJustin Drew Bieberが大好き
私だけのJustinが欲しい
やっぱBieber、Bieberって響きがいいよね

Justin : お前が好きだよ。大好きだよ。

そう耳元で囁かれると 私 はトキメイた。
身も心もJustin Drew Bieberの物。

私はベットの布団の中で一人、悶えていた。
May - Friday the 13th...

136:デフォルトの名無しさん
12/01/02 17:06:20.63
>>125
先読みが使えない場合はどうするの?

137:デフォルトの名無しさん
12/01/02 17:10:05.43
[  ]*(([0-9A-Za-z\-:\.]+ ){0,}[0-9A-Za-z\-:\.]+)[  ]*

138:デフォルトの名無しさん
12/01/02 17:27:57.62
>137
この行のスペース2個は難しそうですか?
身も心も Justin Drew Bieber の物。

139:デフォルトの名無しさん
12/01/02 17:46:05.19
どこにspace2個あるんだよ?

140:デフォルトの名無しさん
12/01/02 17:46:15.19
>>111
どっから持ってきたかは知らんが、>>112も書いてるようにやめた方がよい。
せめて \p{ASCII} みたいな文字プロパティにすべき。

141:デフォルトの名無しさん
12/01/02 17:47:48.27
>>136
24通り並べる。

142:デフォルトの名無しさん
12/01/02 17:56:32.09
>>136,141
>>124


143:デフォルトの名無しさん
12/01/02 18:44:47.04
>>124は24通り全部並べる代わりに条件分岐使ってまとめてあるだけだが、
やってることは変わらないし、条件分岐使える環境なら先読みも使えるはず。

144:デフォルトの名無しさん
12/01/02 19:17:53.99
結論:先読み検索できる環境にデータごと移行させろ

145:デフォルトの名無しさん
12/01/02 20:53:33.35
「出資者は無理難題をおっしゃる」

データ加工に便利な環境に移せるなら、それも手ですね。

146:デフォルトの名無しさん
12/01/02 21:38:31.49
>>139
2chだとわからなくなっちゃうのでしょうか。わかりにくくてすいません
身も心も Justin[][]Drew Bieber の物。
コピペすると分かるのですがここに2個スペース入っていました。
スペースが2個あると消えてしまうようでしたが事前にスペース2個を1個に変換することにします
毎日使っているものなので大切に活用させて頂きます。有難うございます

147:デフォルトの名無しさん
12/01/02 23:52:34.43
●正規表現の使用環境
javascript

●検索か置換か?
検索

●説明
以下の2つのデータ共にマッチするようにしたい

●対象データ
<a href=”http://~.hogehoge.com/~/”>~</a>
<a http://~.hogehoge.com/>~</a>

/<a href=”http:\/\/.+?\.hogehoge\.com\/.+?\/?”>.+?<\/A>/gi
のようにコードを書いてみたのですが、どうもうまくいきません。
どのように記述すればいいのでしょうか?

148:デフォルトの名無しさん
12/01/03 00:33:34.83
それ本当は「2つのデータにマッチ」が目的じゃないだろ
テンプレ使うならちゃんと希望する結果まで書けよ

149:デフォルトの名無しさん
12/01/03 00:39:11.64
<a href=”http://~\.hogehoge\.com/~/”>~</a>|<a http://~\.hogehoge\.com/>~</a>

これでどちらのデータにもマッチする

150:デフォルトの名無しさん
12/01/03 00:41:21.84
>>147
やりたいのはこういうこと?
/<a href="http:\/\/.*\.hogehoge\.com\/(.+\/)?".*<\/a>/

151:てすすき
12/01/03 00:55:19.17
●JavaScriptかPHP(なければなんでも)
●置換
●現在パターンにマッチしている回数(試行回数でも)を置換後に埋め込むことできましたっけ?
●あいうあいうあいう・・・
●1あいう2あいう3あいう・・・


152:デフォルトの名無しさん
12/01/03 03:33:11.94
var count = 0;
var callback = function(x) {
return (++count) + x;
};
"あいうあいうあいう".replace(/あいう/g, callback);


153:てすすき
12/01/03 09:44:43.57
>>152
ありがとうございます
あコールバックありましたねphpも探したらありそう
正規表現だけだと無理ですよね

154:147
12/01/03 10:58:55.34
>>148
すんません。その通りです。

HTMLページ内の「<a href="URLリンク(mag.hogehoge.com)">ほげほげ</a>」(※1)というようなタグを「mag,sky,ほげほげ」のようにデータを置換したいんです。

その過程の中で、「<a href="URLリンク(mos.hogehoge.com)">もげもげ</a>」というドメイン以下のフォルダ名がないものがあったので、どうしようかと思ったのです。
とりあえずデータ訂正は後で行うので、これも(※1)と同じように置換するにはどうすればいいのでしょうか。

155:デフォルトの名無しさん
12/01/03 12:17:33.31
>>154
/<a href=\"http:\/\/(.+)\.hogehoge\.com\/(.*)\/?\">(.*)<\/a>/

置換したい文字列を"$1,$2,$3"とかにすれば
上は mag,sky,ほげほげ
下は mos,,もげもげ
みたいに置換されるんじゃないかな。

156:147
12/01/03 13:51:54.18
>>155
/<a href=\"http:\/\/(.+)\.hogehoge\.com\/(.*?)\/?\">(.*)<\/a>/

と記述したところ
>上は mag,sky,ほげほげ
>下は mos,,もげもげ

と動くようになりました。
ありがとうございました。本当感謝です。


157:デフォルトの名無しさん
12/01/08 07:32:21.97
●正規表現の使用環境
PHP 5.2 で出来ればpreg_replace()で。

●検索か置換か?
置換

●説明
"/foo/bar/baz/qux/" を "/home/bar/baz/qux/" に置換したいです。
fooの文字数は不定です。

●対象データ
/foo/bar/baz/qux/
/qwert/asd/fghjk/klzxv/
/qazwsx/edc/rfvt/gbyhnu/
/4756/78674/45756/34545/4564/546/

●希望する結果
/home/bar/baz/qux/
/home/asd/fghjk/klzxv/
/home/edc/rfvt/gbyhnu/
/home/78674/45756/34545/4564/546/


158:デフォルトの名無しさん
12/01/08 10:06:40.16
>>157
PHP Version 5.3.8で確認済み。

<?php
$string = '/foo/bar/baz/qux/'; // 配列でforeachして下さい。
$pattern = '/^\/[^\/]+\//';
$replacement = '/home/'; // 恐らDEFINEした定数の方がいいと思います。 define REPALCEMENT_STRING = 'home';
echo preg_replace($pattern, $replacement, $string);
?>


159:デフォルトの名無しさん
12/01/10 17:55:27.75
●正規表現の使用環境
テキスト

●検索か置換か?
置換

●説明
文章内の指定した数の改行毎に、行を一段開けたい。
下記例文なら改行三つごとに行を一段開けたい。

●対象データ
(例文)
人は誰しも初体験にはほろ苦く、甘酸っぱい思い出があるものだが、人生の諸先輩方はどんな童貞喪失体験をしたのか?
「シリーズ初体験」--現在70歳の会社役員(兵庫県)が当時の思い出を語った。
中学2年の時、国語の女教師に「勉強を教えてあげるから家においで」といわれ、夏休みに入ってすぐに先生の家を訪れました。
教師になって3年目、美人ではないけれど、私にとっては優しいお姉さんのような存在でした。
何人かいるのかなと思ったんですが、先生の家に行くと私の他は誰もいませんでした。
勉強を教わり、夕食をご馳走になり、その日は泊めてもらいました。
夜中、下半身がもぞもぞするので目が覚めると、先生が私の浴衣の裾を広げていました。

●希望する結果
人は誰しも初体験にはほろ苦く、甘酸っぱい思い出があるものだが、人生の諸先輩方はどんな童貞喪失体験をしたのか?
「シリーズ初体験」--現在70歳の会社役員(兵庫県)が当時の思い出を語った。
中学2年の時、国語の女教師に「勉強を教えてあげるから家においで」といわれ、夏休みに入ってすぐに先生の家を訪れました。

教師になって3年目、美人ではないけれど、私にとっては優しいお姉さんのような存在でした。
何人かいるのかなと思ったんですが、先生の家に行くと私の他は誰もいませんでした。
勉強を教わり、夕食をご馳走になり、その日は泊めてもらいました。

夜中、下半身がもぞもぞするので目が覚めると、先生が私の浴衣の裾を広げていました。
-------------------------
よろしくお願いします。

160:デフォルトの名無しさん
12/01/10 20:28:17.52
.*\n.*\n.*\n

\0\n

161:デフォルトの名無しさん
12/01/10 21:41:34.61
\0でマッチした部分全部を参照できる環境があるのか
後学のために環境名をおしえてくれ

162:デフォルトの名無しさん
12/01/10 21:57:34.29
>>161
結構あるから困る

163:デフォルトの名無しさん
12/01/10 23:16:46.84
>>160
ありがとう。○┓

164:デフォルトの名無しさん
12/01/11 11:52:22.67
>>161
できないほうをおしえろ。

165:デフォルトの名無しさん
12/01/11 12:10:54.85
たとえばPHP使うとマッチ全体がゼロ番目に入ることがprint_r使うと分かるが。

166:デフォルトの名無しさん
12/01/11 12:38:37.57
>>164
perl

167:デフォルトの名無しさん
12/01/11 12:45:30.05
あとpythonもかな。
perl: $&、python: \g<0>

168:デフォルトの名無しさん
12/01/11 12:56:35.50
>>160はこっちがいいということか。

(.*\n.*\n.*\n)

\1\n

169:デフォルトの名無しさん
12/01/11 22:38:22.06
Emエディタでは、
.*\n.*\n.*\n

(.*\n){3}
ではマッチに差が出る。
これは正常なのか。

170:デフォルトの名無しさん
12/01/13 23:05:20.51
文字列「ソース」を含む行を抽出したい
ただし「リソース」「ソース顔」などは弾きたい
この場合、どのように表記すればいいのでしょうか?

^ソース$
くらいしか思いつきませんでした
どなたかご教授お願いします


171:デフォルトの名無しさん
12/01/13 23:40:00.44
質問があいまいで答えようがない

172:デフォルトの名無しさん
12/01/13 23:45:53.00
>>170
完全には無理。
「ソースがおいしい」
という行があった時、それが「ソース顔の石井さん」という意味ならヒットしてはいけないし、
「ソースが美味しい」という意味なら、ヒットしてほしい。
正規表現だけで、完全に判別するのは不可能だ。

173:デフォルトの名無しさん
12/01/13 23:50:49.78
>>171-172
レスありがとうございました
割り切るようにします

検索地獄から解放されて良かったです

174:デフォルトの名無しさん
12/01/14 00:01:30.70
>>173
\bソース\b
とかどうでしょうか?

ちなみに\bは単語境界にマッチする幅0のメタ文字で、
上記はテキストエディタ等で単語検索とか
ワード検索とかよばれるものと等価です

175:デフォルトの名無しさん
12/01/14 00:11:59.19
それは英語などでは有効な手法だけど、日本語の文章を対象にする場合ほとんど無意味

176:デフォルトの名無しさん
12/01/14 00:23:27.79
形態素解析で下ごしらえが必要。

177:デフォルトの名無しさん
12/01/14 00:53:57.14
「ソース」の前後がカタカナではない
「ソース」の後が漢字ではない

で手間は省けるか?でもどうかくのかな

178:デフォルトの名無しさん
12/01/14 01:06:43.97
できないこともないんだけど、ソースの後が漢字ではないを指定できたとして、
「この料理をおいしく食べるためにはソース選びが重要」の「ソース」が排除されるよ。

179:デフォルトの名無しさん
12/01/14 01:56:17.32
正規表現は日本語文字列には向かないからな

180:デフォルトの名無しさん
12/01/14 03:35:58.90
正規表現がどうって話じゃないでしょ。
boxを抽出したいけどtreasure boxは弾きたいって言ってるようなもんでしょ。

181:デフォルトの名無しさん
12/01/14 09:25:17.26
もし自分がやるとしたら、ソースの前後がカタカナではないという条件にするかな。それで大半はうまくいくはず。
ソース顔とかはヒットしてしまうが、後で結果を見直して、手動で消去する(手動が許されるなら)。

ただ、その場合、ソースコードとかトンカツソースとかも除去される。これはソースの意味だから除去したくないと
いうのであれば、難しいね。思いつく単語を別途ORで結んでヒットさせるという手もあるが、ウスターソースとか
ソースファイルとか、いくらでも思いつくし。

それか、たぶん>>170は調味料ではなくてプログラムのソースのことを指しているのだと思うので・・・。
検索元の文書がプログラミングに関する文書であって、トンカツソースとかの単語は入っていないのが明白であれば、
「リソース」を省かせるだけでも十分な気がする。その場合、
(?<!リ)ソース
または
^ソース|[^リ]ソース
でいける。

まあ、何のために検索したいかによるよね。ちょっと多少ゴミが混じってもいいというのなら上記のでいいと思うけど、
完璧にヒットさせたいと思うなら、正規表現では無理だ。

182:デフォルトの名無しさん
12/01/14 12:08:57.43
>>180
日本語の場合分かち書きしないから単語境界も使えない、
というわけで、日本語は正規表現も含めて検索性が悪いよ。

getを検索してnuggetを弾くようなことも難しいわけ。

183:デフォルトの名無しさん
12/01/14 12:16:39.74
>>180は単語境界が使える英語でさえ処理が難しいケースを挙げてるんだと思うよ

184:デフォルトの名無しさん
12/01/14 12:21:19.98
英語でも難しいケースはあるが、英語の場合日本語よりは楽なので
「正規表現は日本語文字列には向かない」というのにはそれなりの妥当性がある

185:デフォルトの名無しさん
12/01/14 13:33:31.04
C#.netで正規表現で文字列チェックするんだけど、
正規表現って、普通に1文字チェックするより高速なの?


186:デフォルトの名無しさん
12/01/14 13:43:38.91
本当に速度がクリティカルに効いてくる状況ならちゃんと測定すべき。
そうでないなら実装しやすい方で。

187:デフォルトの名無しさん
12/01/14 14:10:14.61
ソースファイルとか普通に使うよ

188:デフォルトの名無しさん
12/01/14 14:35:46.57
>>186
馬鹿丸出しの質問にレスありがとう。
やっぱそうだよね、場合によるよね。

比較の記事とかネットにないかぐぐったけどなさげだったので質問してみました。


189:デフォルトの名無しさん
12/01/14 16:52:35.86
実際自分でコード書くよりライブラリ使った方が
速いときが多いよね
コードの洗練さとかの関係で

190:デフォルトの名無しさん
12/01/14 17:31:01.32
日本語は助詞でつなぐからな
英語だと半角スペースがあるので指定単語を抽出しやすい

191:デフォルトの名無しさん
12/01/14 17:46:59.25
ここではきものを脱いでください

BGMによって着物か履物かわかれる。

192:デフォルトの名無しさん
12/01/14 18:42:21.35
BGM?

193:デフォルトの名無しさん
12/01/14 18:54:04.02
加トちゃんのBGMなら着物を脱ぐんじゃないの

194:デフォルトの名無しさん
12/01/14 21:05:12.37
「一休さん」くらいの文言で良かったのに…

195:デフォルトの名無しさん
12/01/14 21:07:37.14
このはしわたるべからず、ってやつ?
それはそうと>>191の例は超有名。BGMはシラネ

196:デフォルトの名無しさん
12/01/14 21:30:16.88
木の葉皺たるべからず

木の葉は皺であるはずがない

197:デフォルトの名無しさん
12/01/15 01:37:34.91
●正規表現の使用環境
秀丸エディタ
●検索か置換か?
置換
●説明
<div class="main">の場合に限り、両端のdivをspanに置換したい。
※<div class="main">から</div>までの行数は、3行だったり5行だったりと色々変わります。
●対象データ
<div class="main">あああああ<br>
いいいいい<br>
ううううう<br>
えええええ<br>
おおおおお<br>
</div>

●希望する結果
<span class="main">あああああ<br>
いいいいい<br>
ううううう<br>
えええええ<br>
おおおおお<br>
</span>


下の正規表現を作ってみたのですが検索でマッチしません。
どなたか助言頂けるとうれしいです。
よろしくお願いいたします。

置換元
<div class="main">(.*\n*)</div>
置換先
<span class="main">\1</span>

198:デフォルトの名無しさん
12/01/15 01:42:24.89
<div class="main">(.*\n?)*?</div>

適当だけどこれでどうだろう

199:デフォルトの名無しさん
12/01/15 01:51:11.62
>>198
うーむ、マッチしないみたいです。。
レスありがとうございます。

200:デフォルトの名無しさん
12/01/15 02:51:10.19
([.\n]*?)
でもだめなのかな

201:デフォルトの名無しさん
12/01/15 03:00:53.60
複数行にマッチさせる場合、正規表現に渡す行数を指定しないとだめ
URLリンク(homepage3.nifty.com)
(?#maxlines:5)<div class="main">((.|\n)*?)</div>かな


202:デフォルトの名無しさん
12/01/15 03:01:16.02
>>197
やってみたけど、もっといい方法があるかも…
参考:URLリンク(homepage3.nifty.com)

検索:(?#maxlines:5)(<div class="main">)((.*\n)+)(</div>)
置換:<span class="main">\2</span>

203:202
12/01/15 03:02:39.67
被った。。。ゴメン

204:デフォルトの名無しさん
12/01/15 09:30:42.81
お返事遅くなってしまいましたごめんなさい。
晒すような形になってしまうのでどうかと思ったのですが、
フィードバッグ?した方がいいと思ったので一応結果を添えます。
>>200
<span class="main"></span><<span class="main"></span>d
<span class="main"></span>i<span class="main"></span>v
<span class="main"></span> <span class="main"></span>c
<span class="main"></span>l
と、spanが続くようでした。
(本当は改行になってないです、もっと続きますが長くなるので以下省略。)

>>201
<span class="main"></span>
と間の文章が無くなるようでした。

>>202
無事出来ました。

秀丸のバージョンもちゃんと書いた方が良かったかもですね、ごめんなさい。。
URLまで頂いてありがとうございます。
解決した正規表現見てもなかなか理解が進まないのでもっと勉強します。
レス下さった皆さん本当にありがとうございます。感謝です。

205:200
12/01/15 14:26:26.74
>>204
そういう風に使うもんじゃなかったんだけど、そもそも秀丸固有の問題があるのを知らなかったごめん。

206:デフォルトの名無しさん
12/01/16 19:34:46.94
掲示板にあるURLやアンカを削除するために、compileメソッドの引数にURLとアンカの正規表現を使いたいんですがどう書いたら良いですか?

207:デフォルトの名無しさん
12/01/16 19:40:09.08
すいません>>206はjava言語です。


208:デフォルトの名無しさん
12/01/16 20:28:26.54
あれ、このスレになかった?
頻出だとおもうんだけどなぁ

209:デフォルトの名無しさん
12/01/16 20:39:28.87
Javaで動く出来合いのコードが欲しいんだろう

210:デフォルトの名無しさん
12/01/16 21:05:33.12
>>209さんのおっしゃる通りです。宜しくお願いします。

211:デフォルトの名無しさん
12/01/17 00:10:56.53
どこの掲示板かとかdatなのか見た目なのかとかで変わってくる。
一口にurlと言ってもurlにもいろいろあるからどこまでをurl扱いにしたいかってこともある。

urlにマッチさせる正規表現を作って公開してるサイトとかあるけどRFC準拠のurlにマッチするように
作られたものは準拠してないurlを取りこぼす。

ちなみにurlよりやっかいなのがメールアドレス。どこまでメールアドレスとして認識させたいかが
その状況によって大きく変わってくるから。

212:デフォルトの名無しさん
12/01/17 01:43:51.22
Bashスクリプトのif文で正規表現ってかけないのかな?

if [ ${INPUT} = [0-9] ]; then
echo "数字です"
fi

こんな感じでいけそうだけど上手くいかない

213:デフォルトの名無しさん
12/01/17 02:13:00.57
正規表現使ってるのあんまり見かけないけど一応書けるらしい

$ input=1aaa5; if [[ $input =~ ^[1-9]+$ ]]; then echo t; fi
$ input=12345; if [[ $input =~ ^[1-9]+$ ]]; then echo t; fi
t

214:206
12/01/17 02:43:42.22
>>211
教えて頂きありがとうございます。
では試しに2chの場合どう正規表現で書くのでしょうか?

2ch掲示板のdatファイルを見るとURLの終わりに半角空白があるので"^(http|https).*/s"といった感じでしょうか?
アンカの正規表現は思い付かないですorz

215:デフォルトの名無しさん
12/01/17 03:22:55.40
性器表現

216:デフォルトの名無しさん
12/01/17 16:25:00.67
>>214
2chの場合はこうじゃないの。サブサブドメインは見たことないと思う。
URLリンク([a-z]*\.2ch\.net)

217:デフォルトの名無しさん
12/01/17 16:52:21.66
ホスト部は数字も含むでよ

218:デフォルトの名無しさん
12/01/17 19:20:06.75
桜蘭高校ホスト部は関係無いだろ

219:デフォルトの名無しさん
12/01/17 21:20:23.99
落ち着け。

220:206
12/01/17 21:42:42.74
>>216
ありがとうございます。参考にさせて頂きます。

221:デフォルトの名無しさん
12/01/17 22:17:10.60
>>220
質問の内容が2chのdatファイルにある、いずれかのレスに含まれているURLを指していると思うんだけど
それなら半角スペースが入ってるとかそんなルールないよ。
たとえばURLリンク(example.com)<) とか、このスレのdat見てみ

222:デフォルトの名無しさん
12/01/18 01:33:00.66
まあなにか終わりを判別するものがないと困るから、
(まだURLが終わってないってことになるから)
URLの「後ろに」空白文字(改行含む)を書いてる人が多いだけでしょ。

223:デフォルトの名無しさん
12/01/18 02:11:31.53
特に困らないよ。
日本語URLとかかかれちゃうと困るけど

224:デフォルトの名無しさん
12/01/18 07:22:00.60
全角文字(2バイト文字?)だけを検索するには
なんと書くんでしょうか?

225:デフォルトの名無しさん
12/01/18 08:02:49.11
[ぁ-ヶ]|[亜-黑]

226:デフォルトの名無しさん
12/01/18 09:13:10.85
正規表現以外で文字列検索するなら最強の検索方法は何でしょうか?

227:デフォルトの名無しさん
12/01/18 09:54:21.57
Procmailで転送設定していたのですが、正規表現でどう書けば
いいのか分からないので教えてください。

* ^(From).*test@test.co.jp
.Sent.2012/

上記の条件で転送していたのですが、上記だとResent-From:の
ヘッダが先に条件として判定されてしまうようで、Resent-Fromでは
なくFromが○○だったら。としたいのですがどうすれば良いでしょうか。

228:227
12/01/18 10:26:12.57
自己解決しました。ANDで条件書けば良いだけでした。失礼しました。

229:デフォルトの名無しさん
12/01/20 00:31:32.03
2時間ほど悩みましたが、解決方法が見つからないので教えて下さい。
検索条件 ★で始まり、間に「あ」を挟み、★でおわる
★と「あ」の間にはx文字(0~10文字)ランダムに挟まっている
例文
★123あ133s★124か1256★863あ13qw3s★1rtyさ12fd★あ1s★
抜き出したい箇所
★123あ133s★
★863あ13qw3s★
★あ1s★
どなたか頭のいいかた解決方法教えて下さい。

230:デフォルトの名無しさん
12/01/20 00:38:38.68
★.*?あ.*?★

231:デフォルトの名無しさん
12/01/20 00:53:35.04
プリクラでメンチ切ってる武丸さんみたいな正規表現だな

232:デフォルトの名無しさん
12/01/20 01:12:53.52
>>229
>>1
環境によっては"量指定子?"の最短一致は使えないんじゃないかな
せっかく10文字という条件が出てるので、
★[^あ]{0,10}あ[^★]{0,10}★
「あ」と「★」の間も0~10文字でいいと勝手に解釈したー

233:デフォルトの名無しさん
12/01/20 01:45:25.09
{n,m}が使える環境なら*?も使えるんじゃね?

234:デフォルトの名無しさん
12/01/20 01:45:42.30
>230
>232
有難う御座います。
解決しそうです

235:デフォルトの名無しさん
12/01/20 04:25:27.26
>>233
そんなことないよ。*?はそれとは別物

236:デフォルトの名無しさん
12/01/20 04:41:23.07
教える側のレベルが低すぎてどうしようもないなこのスレ・・

237:デフォルトの名無しさん
12/01/20 06:28:25.47
そんなことをぼやいているようじゃやってけないぞ

238:デフォルトの名無しさん
12/01/20 11:05:03.91
>>236
お前が教えてみろよ。低脳のくせに。

239:デフォルトの名無しさん
12/01/20 11:49:25.16
質問させてください。
半角文字列にスペースが含まれています。


727 751 798 625 791 460 645 850 656 697.......
このスペースをカウントして,3つめのスペースだけを改行に置換する場合(下)
727 751 798
625 791 460
645 850 656
697.......

どう表現すればいいのでしょうか?

数値が全て3桁ならば分かるのですが,2桁や4桁が含まれており文字数ではマッチできません。
よろしくお願いします


240:デフォルトの名無しさん
12/01/20 12:32:06.29
/(\d+\s\d+\s\d+)\s/g --> $1\n

241:239
12/01/20 13:54:10.15
>240

すみません,質問の仕方がまずかったのかも。
教えていただいた表現では置換されませんでした。

使用環境はMacです。



242:デフォルトの名無しさん
12/01/20 13:57:23.76
テンプレ読み直せハゲ

243:デフォルトの名無しさん
12/01/20 13:59:42.25
>241

>1の説明に

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

と書いてありますよ。

244:239
12/01/20 14:04:16.68
申し訳ありません

使用環境は
MacOS, 10.6
iText Express
です。

よろしくお願い致します

245:デフォルトの名無しさん
12/01/20 14:11:05.27
>>241
自分の使っている処理系のヘルプを読め。
正規表現は合ってるし、おそらくこれが使えない正規表現エンジンはないか、ほとんどない。

246:デフォルトの名無しさん
12/01/20 14:24:25.21
>>232は「★い★あ★」にマッチするはず。

247:デフォルトの名無しさん
12/01/20 15:22:36.22
置換先が違うのかも。\1とか。
でもそれぐらいは質問者で対応するか。

248:デフォルトの名無しさん
12/01/20 15:29:05.94
>>245
鬼車らしい

249:239
12/01/20 17:59:18.96
すみません
初めて正規表現を使うのでよく理解出来ていないかもしれませんが,
MacOS, 10.6,iText express では鬼車とよばれる正規表現ライブラリ
が用いられることは理解できました。
ただ問題の構文では検索が出来ません。
Mac では円記号の代わりにバックスラッシュを用いても結果は同じなのでしょうか?他にもなにか気をつけなければいけないことってあるでしょうか?

250:デフォルトの名無しさん
12/01/20 18:10:08.97
ソフトの使い方はスレ違いだから
気を付けてくれたまえ

251:デフォルトの名無しさん
12/01/20 18:10:33.37
>>249
簡単な正規表現なのでそのソフトを使ってる人に片っぱしから聞くのが早いよ
該当スレがあればそっちで聞く

あるいは正規表現で検索/置換するウインドウと
ヘルプの該当項目のスクリーンショットを撮ってどこかにUPすれば答えられるかもしれない

252:239
12/01/20 18:15:13.39
レスありがとうございます
出直してきます

253:デフォルトの名無しさん
12/01/20 18:29:48.66
二度とこなくていいよ^^

254:デフォルトの名無しさん
12/01/20 18:34:22.10
マック板は2つもあるんだから
そこで糞スレでも立てとけば暇な人がやってくるよ

255:デフォルトの名無しさん
12/01/20 20:54:46.64
Macは「これ!」というエディタが無いのがな~
Cot editorもWindowsのSakura editorに比べたら数年前世代の出来だし

256:デフォルトの名無しさん
12/01/20 21:05:46.95
Sakura、ここ数年でそんな変わってんの?

257:デフォルトの名無しさん
12/01/20 22:05:09.81
内部コードがUNICODEになった。

258:デフォルトの名無しさん
12/01/20 22:47:04.58
鬼車って英語で言うとDemon
Car って言うらしいよ。



興奮先生が言ってた。

259:デフォルトの名無しさん
12/01/21 00:13:07.30
日本語の「鬼」に相当する概念がないからアレ

260:デフォルトの名無しさん
12/01/21 00:51:44.72
じゃあ鬼を定義してみる
・角が生えるイメージ戦略
・既婚女性(鬼女)

261:デフォルトの名無しさん
12/01/21 00:53:16.75
ONI Devil

262:デフォルトの名無しさん
12/01/21 01:03:03.70

zearth_02さん
デビルは羽の生えた様な悪魔で、デーモンは鬼のように角が生えてるみたいに種族の違いかも知れません(>_<)
サタン(ルシファー)は悪魔王だからトップですね~たぶん(´~`)


delta0011zzzさん
demon: ギリシャ神話でいう神々と人間の中間にあると考えられる悪魔。ただし悪魔となったのは後で神と人間の間の存在が元々の意味
devil: キリスト教でいう神に対する悪魔
Satan: 「悪」の擬人化されたもの; ヘブライ語で「敵」という意味で, キリスト教では神に敵対する悪魔の王といったところです
URLリンク(detail.chiebukuro.yahoo.co.jp)

263:デフォルトの名無しさん
12/01/21 01:08:40.77
Daemon Carなら許せるがな。


264:232
12/01/21 01:33:06.76
無理やり英語にする意味がわからないw<oniguruma

>>246
Σ(´∀`;)、指摘サンクスです。
★[^あ★]{0,10}あ[^★]{0,10}★
ですかね。

しかし、★あ★あ★あ★の場合、1個目と3個目にしかマッチしないんだよな
プログラムで検索位置を調整するとかなんだろうけど、
まあ>>229の環境がわかんないんで気にしてもしょうがないか。

>>236 ハンセイ…精進します

265:デフォルトの名無しさん
12/01/21 03:28:53.08
そんなこんなでOgreKitって名前がついたんでしょう

266:デフォルトの名無しさん
12/01/21 03:34:22.67
オグレかとオモたらオーガだったのか

267:デフォルトの名無しさん
12/01/21 05:08:45.10
>>264
★あ★あ★あ★

から

★あ★
★あ★
★あ★

を抜き出すのは無理。

268:デフォルトの名無しさん
12/01/21 05:10:37.13
あ、間違った…

269:デフォルトの名無しさん
12/01/21 05:14:51.33
見つかった先頭位置から1文字ずらしてけばいいじゃん


270:デフォルトの名無しさん
12/01/21 05:17:40.12
それと★をセパレータとみなしても取り出せるし
自分で正規表現組めないなら無理して使う意味ないよ

271:デフォルトの名無しさん
12/01/21 06:04:09.62
多くの環境では無理じゃない。環境書かないから答え書かない。

272:デフォルトの名無しさん
12/01/21 08:50:54.19
会話本文と置換したい文が紛らわしい。
もうちょっと書き込み見直してよ('A`)

273:デフォルトの名無しさん
12/01/21 11:36:34.09
>>269
見つかった先頭位置?
末尾の位置 (lastIndex) じゃなくて?

>>270
え?セパレータ?

274:デフォルトの名無しさん
12/01/21 19:12:11.59
>>229
/★[^★あ]*あ[^★]*(?=★)/g


275:デフォルトの名無しさん
12/01/21 22:21:32.64
アスキーアートを正規表現に変換して文書から除去したいんですがどう書けば良いのでしょうか?

276:デフォルトの名無しさん
12/01/21 22:22:11.57
すいません>>275はjavaです。

277:デフォルトの名無しさん
12/01/21 22:26:51.85
>>275
正規表現でAAあぼ~ん
スレリンク(tech板)

278:デフォルトの名無しさん
12/01/21 22:30:25.16
>>277
教えてくださって恐縮なんですがどれが正しいアスキーアートの正規表現なのか解らないですorz

279:デフォルトの名無しさん
12/01/21 22:36:25.50
専用スレで聞けってことだよ

280:デフォルトの名無しさん
12/01/21 22:46:10.28
>>279
すいませんありがとうございました。

281:デフォルトの名無しさん
12/01/22 11:32:50.40
>>248
鬼車はUnicodeで使うと\dが全角数字にマッチするし、
\sは全角スペース等にもマッチするようになる
(\wはASCIIの[A-Za-z_]以外にも多バイト文字にもマッチする)

鬼車を正規表現エンジンで採用してるRuby 1.9系列は内部Unicodeだけど
\dが全角数字にマッチしないように細工してる
\sも細工してるかは忘れたけど、\wは細工ないので、
多バイト文字にもマッチする

282:デフォルトの名無しさん
12/01/22 16:52:22.17
鬼車はオプション次第で動作がかなり変わるから、「鬼車は、~だ」という言い方は出来ないな。
>>281が書いたような細工をしてから使っているという話もよく聞くから余計に。jane view作者もいじってから使ってる。

283:デフォルトの名無しさん
12/01/22 18:32:14.08
全然正規じゃないよね

284:デフォルトの名無しさん
12/01/22 22:33:03.38
>>281
Rubyは\wもいじってる。(でも\bはいじってない。)

285:デフォルトの名無しさん
12/01/23 09:14:46.41
>>284
¥bって¥wと¥Wの境目だと思ってたんだけど、¥wいじって¥bいじらないと
その関係が成り立たなくて困らないんだろうか

286:デフォルトの名無しさん
12/01/23 11:33:53.02
a、bどちらかの一文字にマッチ、という場合 a|b と [ab] はどちらかが好ましいってのはある?


287:デフォルトの名無しさん
12/01/23 11:41:35.82
本来の「正規表現」だと、[ab]はa|bの糖衣表現でしかないから差はない。
ただ今のは全て拡張正規表現だから実装による。大差ないだろうけど。

見た目的にはa|bは結局カッコで囲む必要があるケースが多くうざくなりがち。

288:286
12/01/23 11:53:16.85
>>287
分かり易い説明ありがとう

289:デフォルトの名無しさん
12/01/23 12:02:02.39
[a-z]の範囲指定は|の列挙より効率いいこと多いでしょうね。

290:デフォルトの名無しさん
12/01/23 12:33:04.74
速度よりも可読性を優先してます。

291:デフォルトの名無しさん
12/01/23 13:46:21.55
>>285
Rubyでは\p{Word}と\P{Word}の境目とされている

292:デフォルトの名無しさん
12/01/23 17:44:16.32
>>285
よく分からんが仕様だとさ。
URLリンク(bugs.ruby-lang.org)

ちなみに、Javaも\wと\bの対応がとれていない。ふざけとんのか

293:デフォルトの名無しさん
12/01/23 21:15:38.00
環境によって動作が変わる\wとかは最初から使わないようにしてる。仕様変更に弱くなるから。

294:デフォルトの名無しさん
12/01/24 07:03:03.76
全然正規じゃないよね

295:デフォルトの名無しさん
12/01/24 07:40:13.90
そもそも正規ってどういうこと?

296:デフォルトの名無しさん
12/01/24 08:37:06.32
>>295
URLリンク(hisashim.livejournal.com)

297:デフォルトの名無しさん
12/01/24 09:50:20.13
「正規」って珍訳じゃないか?って人に言ったら、解ってないなと言われいろいろ説明されたことがある。実際どうなの?俺は原典読んでないんだけど。

298:デフォルトの名無しさん
12/01/24 10:14:54.95
>296読んで、それを人に説明できるかは難しい

299:デフォルトの名無しさん
12/01/24 10:56:19.38
正則集合がわからない人間に説明するのは難しい。
形式言語の3型文法を教えるのが簡単だと思われる。

300:デフォルトの名無しさん
12/01/25 11:01:40.52
テキストファイルの中に
foo=bar
という形式で設定値が列挙されています。
grepかegrepだけでfoo=の右辺値のbarを抽出する正規表現はどうなるでしょうか?
(?<=foo=).*
とかやりたいんですけどgrepもegrepもこの式を受け付けてくれません。

301:デフォルトの名無しさん
12/01/25 11:16:58.56
grepってパターンにマッチする *行* を表示するプログラムじゃないの?
マッチ部分だけが欲しいならsed使うんじゃなくて?

302:デフォルトの名無しさん
12/01/25 11:20:14.85
ちなみにsedなら
sed -n -e '/^foo=/s///p'


303:デフォルトの名無しさん
12/01/25 11:24:41.02
なるほど。
?sed -e "s/\(foo=\)\(.*\)/\2/" testfile.txt
で抜き出せました。grepとegrepにこだわっていたのが敗因でした。
ありがとうございました。

304:デフォルトの名無しさん
12/01/25 12:57:24.59
余談だがパラメタ展開しないならシングルクォート使うとシンプルになるよ

305:デフォルトの名無しさん
12/01/26 03:59:41.24
-oオプションはGNUだけ?
grep -Po '^foo=\K.*' FILE

306:デフォルトの名無しさん
12/01/26 09:28:28.27
おお。perlオプションなんてあったんですね。
Pつきなら
(?<=foo=).*
でOKでした。

307:デフォルトの名無しさん
12/01/26 12:43:27.44
>>306
\Kが使えるなら、おそらくそっちの方が戻り読みより効率がよい。

308: ◆x0X2ba5fI.
12/01/27 19:59:37.19
javascript
同一文字長さ1-5の文字列がある(例:a,aa,..,aaaaa)
これを3回以内の置換で2文字以内の一意の並び(例:0,1,00,01,10)にできる?
出力に元の文字を使うことは可能

309:デフォルトの名無しさん
12/01/27 20:30:47.06
書き込む前に意味が通るようによく推敲しろ

310: ◆x0X2ba5fI.
12/01/27 20:41:45.68
例示してあるのに意味がわからないなら黙ってた方がいいと思うんだな僕は

311:デフォルトの名無しさん
12/01/27 21:31:11.31
aaaaa/ab aaaa/bb aaa/b に置換したならば
a,aa,aaa,aaaa,aaaaa は a,aa,b,bb,ab となり要求を満たす
よって可能

312:デフォルトの名無しさん
12/01/27 22:03:06.02
>>311
しかし普通は問題の原文は a,aa,aaa,aaaa,aaaaa ではなくa,aa,aaa,aaaa,aaaaaの
うちどれかの文字列ということになる。

313:デフォルトの名無しさん
12/01/27 22:13:46.72
ネットで検索したら、正規表現練習ツール
とかいうのがあるけど、これって練習につかえる?

314:デフォルトの名無しさん
12/01/27 22:23:57.71
最終的に何がしたいのかを隠してるから、この質問に対する答えでは
最終的な解決にならない可能性が高い。そして新たなゴミ質問をしてくるという無限ループ。

315:デフォルトの名無しさん
12/01/27 22:26:44.18
>>312


316:デフォルトの名無しさん
12/01/27 22:36:17.46
\Kなんていう便利な正規表現って一体どこで見つけたの?
何冊か本読んで探してみたけどどこにも書いてない。

317:デフォルトの名無しさん
12/01/27 22:41:37.84
>>313
正規表現は使ってナンボだと思う。
実戦こそ学習の場。

318:デフォルトの名無しさん
12/01/27 22:59:45.23
>>317
>>313への答えになってないと思うんだ

319:デフォルトの名無しさん
12/01/27 23:04:58.86
練習ツールよりも実戦って言ってるみたいだけど…

320:デフォルトの名無しさん
12/01/27 23:11:34.35
そんなもん使ってる暇があったら実戦で覚えろって言ってるんだろ
>>317の回答はノーだと思われる

321:デフォルトの名無しさん
12/01/27 23:11:50.30
>>316
Perl(とPCRE)の拡張表現だと思う。
pcreのmanpageかperldoc pelre辺り。

322:デフォルトの名無しさん
12/01/27 23:23:39.03
\Kみたいなのまでは知らなくてもいいと思うよ。代表的なのさえしっかりおさえておけば大抵なんとかなる。
回答者やるレベルになりたいなら全部知ってないと話にならないけど、ここには話にならない回答者しかいない。

323:デフォルトの名無しさん
12/01/27 23:24:46.90
鼻高々(笑)

324:デフォルトの名無しさん
12/01/27 23:31:31.52
>>316
ソフトウェア板のサクラエディタふぁんくらぶには
鬼雲やbregonig.dllの作者である>>292の高田さんがよく降臨してるんだけど、
正規表現エンジンが鬼雲になったbregonig.dll V3では
\Kが使えるようになったと去年ステマしに来てた

325:デフォルトの名無しさん
12/01/27 23:35:14.63
鬼雲?

326:デフォルトの名無しさん
12/01/27 23:38:45.65
正規表現は単独の記号や記号とセットの英字でメタ文字が構成されてるから、
ネットでググれないのが欠点だよね

検索キーワードに記号を受け付けてくれたり、
正規表現でパターンマッチングできる検索サイトはないものか

327:デフォルトの名無しさん
12/01/27 23:47:42.18
>>325
URLリンク(github.com)

高田さんがonigurumaをフォークしてPerl5.14互換の機能を取り込んだ正規表現エンジン
Oniguruma-modだからOnigmo

ちなみに作者さんがOnigmoの漢字を決めかねていた時期に
いち早く「鬼雲△」とサクラエディタスレに書き込んでいたのは俺な

328:デフォルトの名無しさん
12/01/28 00:05:19.62
>>322
頭悪いだろ。

329:デフォルトの名無しさん
12/01/28 00:06:35.34
鬼蜘蛛の方がかっこいいのに…

330:デフォルトの名無しさん
12/01/28 00:11:02.87
「本人がステマしてた」とかネタでも頭悪そう。言ってる人が

331:デフォルトの名無しさん
12/01/28 00:12:25.92
自演がばれたとかじゃないの?
そうでないとつじつまがあわん

332:デフォルトの名無しさん
12/01/28 00:17:25.49
ちゃんとリファレンスマニュアル読めよ

333:デフォルトの名無しさん
12/01/28 01:11:45.94
クモ嫌いだからやめて。

334: ◆x0X2ba5fI.
12/01/28 05:47:46.96
>>311
5と4先に1つずつ始末するのは何故か試してなかった
thx
>>314
単純に「エレガントに一意にしたかっただけ」の話
最終的にそういうことで解決なのですまんが新たなゴミ質問はない

実際に使うシチュエーション

あるサブルーチンを6回回す sr(60);
受け取る引数は1コでそれぞれ10,20,30,40,50,60
そのうち1回はスペース無し確定なので考慮するのは残り5回
引数を元に生成した文字列(特定の文字列+後ろにスペースだけの組み合わせ)が
サブルーチン内で定義する連想配列のキーになる cat["-すべて"+id] = ...

ループ回して連想配列定義するのにそのキーを出来るだけエレガントに一意にしたかっただけ
実際には最終的に出力に影響はないしする必要のないことなので
隠してるとかいう次元の話でもなく良い手があればということで行末に?を付けた

335:デフォルトの名無しさん
12/01/28 08:51:28.39
>>333
なるほど、実在する物体はイメージがプラスとは限らないのね。
ネーミング時には気をつけます。

336:デフォルトの名無しさん
12/01/28 17:00:08.19
質問させてください。

>>3の解説サイト内のページ:
URLリンク(funcchan.blog16.fc2.com)
において「A(?=B)(?=B)B」という正規表現を例に挙げて、
「先読みは何がすごいのかというと、同じ場所にある文字や文字列を複数回見ることが出来ることです!」
と書かれています。これはいったい、どのように「すごい」ことで、何の役に立つのでしょうか?

ちなみに、続けて「これとは別に、(?= ) にはもう1つの使い道があります」として、「AB」を「CB」に置換する表現の
例が載っています。こちらの方は普通に理解できるのですが、「これとは別にもう1つの使い道」と言うぐらいなので、
前者の方にもなにか使い道があるのだと思うのですが…。どんな使い道があるのか、理解できません。

よろしくお願いします。

337:デフォルトの名無しさん
12/01/28 19:15:03.72
すごいと思うかは人による。文学や芸術でも見方、評価を押しつけるのはよくない。
凄いとか、感動したとか、はおいといて動作の事実をしれば十分。

338:デフォルトの名無しさん
12/01/28 19:29:45.46
>>336
思い当たるとしたらこのあたり。
URLリンク(codezine.jp)

339:デフォルトの名無しさん
12/01/28 19:41:32.18
>>337
いや、そういうことを言いたいのではなくて・・・。
説明サイトに載っている「A(?=B)(?=B)B」という例は、説明のためだけの、実際には役に立たない例だと思うのですが、
では、「同じ場所にある文字や文字列を複数回見ることが出来る」という特徴の、実用的な使い道(実際に役に立つ例)とは
どのようなものかを知りたいのです。

私が知っている(?= )の使い方は、Aの後にBが来るようなAを探すというものですが、それはサイトで「これとは別のもう1つの
使い道」として説明されているほうに該当すると思います。では、そうではない使い道とは何なのだろうか?ということです。

>>338
なるほど! これは確かに、複数回見る場合の例に該当しますね。
こんな使い方もあるのですね。
勉強になりました。どうもありがとうございました。

340:デフォルトの名無しさん
12/01/28 21:55:46.15
自分がすごいとおもえる用途を教えてくれって事か。

341:デフォルトの名無しさん
12/01/29 07:25:02.38
それがないとできないことがあるという場面を想像すればいいだけなのにね。

342:デフォルトの名無しさん
12/01/29 08:06:07.55
ただ動作の事実さえ知っておけば必要になったときに使えるし、必要になるまではどうでもいいものなんだから
「凄いとか、感動したとか、はおいといて動作の事実をしれば十分。」
って言ってるんじゃないの。

343:デフォルトの名無しさん
12/01/29 09:06:32.32
A(?=.*1)(?=.*2)

Aの後ろに1と2が存在するA。対象テキストで、2⇒1の順に出てきてもマッチする。

A(?=.*1.*2)

2⇒1の順に出てきたらマッチ出来ない。

344:デフォルトの名無しさん
12/01/29 09:10:27.66
>>342
どうしてそうなるw

>>339
確かにこの例じゃ「だから?」で終わりだよなー。

345:336
12/01/29 10:51:27.62
沢山のレスありがとうございます。

解説サイトを見て動作の事実はわかったのですが、それがなんの役に立つのか全く見当がつかなかったので、
質問させていただきました。
数学でも、公式だけを知れば、あとは大した例題をこなさなくても必要時には使いこなせるという人もいるかも
しれませんが、私は頭悪いため、そうはいかないもので。

実際、これまでANDの検索をしたい時は「A.*B|B.*A」などとやって、面倒だなーと思ってたんですが、今後は
スマートに検索できそうです。

346:デフォルトの名無しさん
12/01/29 11:35:36.80
ブログは大半がクズ。いいのもある。
しかし馬鹿に見分けるの困難だから、
定評のある本で勉強することが必要になる。
どんな馬鹿でも時給千円の働きはするのだから、
糞ブログで時間を無駄にするのは馬鹿げてる。


347:デフォルトの名無しさん
12/01/29 11:49:15.48
>>345
それがABCDEFGぐらいあると面倒だなーですまなくない?

348:デフォルトの名無しさん
12/01/29 13:43:40.77
>>345
そういう分からないとこがあったらどんどん聞いていいですよ。後でそのサイトを読む人の参考になりますし。

>>346
正規表現は敷居が高いから自分に合う本を探すのは大変でしょうね。

349:デフォルトの名無しさん
12/01/29 15:57:07.18
検索って地頭が良くないとダメだからな
自分で有効な検索ワードを考えられない人は金払って解決するのがいいと思う

350:デフォルトの名無しさん
12/01/29 19:42:55.72
よろしくお願いします。

●正規表現の使用環境
さくらエディタの「タイプ別設定の正規表現キーワード」
ライブラリはデフォルトのbregoingを使用

●検索か置換か?
検索

●説明
ブロック型のコメントスタイルが2つしか使用できなく
3つ目を利用したいがどうしたらいいのか。

具体的にはC言語で
/* から */
#if 0 から #endif にくわえ

#if 0 から #else
に相当するものを追加したい。

正規表現キーワードを使えばうまくいきそう、というところまでは
たどりついたが、どう書いていいのかよくわからない。

板違いならすいません。

351:デフォルトの名無しさん
12/01/29 19:57:41.89
>>350
無理

352:デフォルトの名無しさん
12/01/29 23:10:13.65
>>350
板違いではないと思うけど、サクラエディタのタイプ別設定の正規表現の話なら、
こっちのスレの方が回答が期待できるよ

サクラエディタふぁんくらぶ part15
スレリンク(software板)

ちょっと前にも書いたけど、上記スレならbregonigの
作者からアドバイスがもらえる可能性もあり


353:350
12/01/30 08:08:58.16
>>351,352
ありがとうございます。そちらで聞いてみます

354:デフォルトの名無しさん
12/02/02 18:51:05.99
よろしくお願いします。

●正規表現の使用環境
JaneStyleのNGEx

●検索か置換か?
よくわかりません

●説明
4行以上の書き込みすべてを対象としてNGにしたい

355:デフォルトの名無しさん
12/02/02 19:14:34.00
>>354
「NGEx.txtを晒すスレ」

356:デフォルトの名無しさん
12/02/02 21:04:35.66
>>355
分からないなら分からないって言おうな

357:デフォルトの名無しさん
12/02/02 22:20:24.46
>>354
正規表現使えるの、これ?

358:デフォルトの名無しさん
12/02/02 22:57:26.12
「改行が3回以上」で表現できないの?

359:デフォルトの名無しさん
12/02/02 23:45:26.86
datにマッチさせるんだっけ
NGWordに正規(含む)で
^(.*<br>){3}
こうか?

360:354
12/02/03 00:06:54.59
>>359
無事にできました
ありがとうございました

361:デフォルトの名無しさん
12/02/03 03:17:53.42
●正規表現の使用環境
java

●検索か置換か?
patternメソッドで置換

●説明
2chの掲示板からコメント部分だけを抽出しました。URLやアンカは正規表現で削除できたのですがAAを削除するための正規表現がどうしても解りません。

全角の/やタブを多く含んでいるのは解っているのですが色々考えても解りませんでした。

AAを削除するスレッドでも質問したのですが良いアドバイスを貰えませんでした。何卒アドバイスを頂けないでしょうか?宜しくお願いします。

362:デフォルトの名無しさん
12/02/03 03:29:36.97
>>361
普段使わない文字が含まれてたら除去すればいいじゃん

363:デフォルトの名無しさん
12/02/03 03:36:07.18
そのつどAAに使われやすい文字(列)を手動で登録。

364:デフォルトの名無しさん
12/02/03 03:38:35.26
>>362
()/%のような記号を一文字表す正規表現ってありますか?
日本語&カタカナ&漢字&英語以外の文字を表す正規表現をかなり調べましたが見つけることができませんでしたorz

365:デフォルトの名無しさん
12/02/03 03:41:45.92
>>363
ありがとうございます。完全に除去したいならそうするしかないですよね

366:デフォルトの名無しさん
12/02/03 04:05:19.89
()/%があるだけでAAと判定するのか。。
(%)/ まぁ、ウルトラマンといえばそうだが。

367:デフォルトの名無しさん
12/02/03 05:04:30.13
>>354がNGあぼーん

368:デフォルトの名無しさん
12/02/03 09:39:57.65
お願いします

●正規表現の使用環境
PHP5

●検索か置換か?
置換

●説明
0123456789アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンABCDEFGHIJKLMNOPQRSTUVWXYZ゙ ゚\「」,.()-/

preg_replace関数を使い上記文字以外を全て削除したい

●対象データ
0ガ9ギAグアaイbウcエdオ

●希望する結果
09Aアイウエオ

369:デフォルトの名無しさん
12/02/03 09:44:33.13
[^0123456789アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンABCDEFGHIJKLMNOPQRSTUVWXYZ゙ ゚\\「」,.()\-\/]

370:デフォルトの名無しさん
12/02/03 09:59:23.48
>>369
$text = '0ガ9ギAグアaイbウcエdオ';
$text = preg_replace('/[^0123456789アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンABCDEFGHIJKLMNOPQRSTUVWXYZ゙゚\\「」,.()\-\/]/' ,'' ,$text);
echo $text;

このようにしてみましたが何も削除されずそのまま表示されます><

371:デフォルトの名無しさん
12/02/03 10:12:47.84
>>370
UTF-8にしてみ

372:デフォルトの名無しさん
12/02/03 10:33:33.36
>>371
結果
0ガ9ギAグアイウエオ
となりました。
なぜガギグが残るのでしょうか?

373:デフォルトの名無しさん
12/02/03 10:35:26.31
失礼・・・
半角のガギグは1文字ではなく別々の文字なんですね
自己解決しました

374:デフォルトの名無しさん
12/02/03 11:01:07.21
NGEx.txtを晒すスレ4URLリンク(jane.s28.xrea.com)

375:デフォルトの名無しさん
12/02/04 20:12:55.57
とくに目的はないんですが、
気になることがあったので教えてください。

●3文字か4文字のaにできる限りマッチする正規表現
(aaa|aaaa)*

●文字列 9文字のa にマッチさせる
aaaaaaaaa

Java6標準の正規表現と、秀丸から呼び出したJRE32.dllでは、
9文字マッチ(aaa aaa aaa)するんですが、
秀丸のHMJRE32.dllでは、8文字(aaaa aaaa)しかマッチしません。

ほかの正規表現エンジンでは、どのような動作が一般的なんでしょう?
詳しい方いらっしゃいましたら教えてください。

376:デフォルトの名無しさん
12/02/04 20:58:37.91
スクリプト言語などで使われているのは
大部分の実装では縦方向探索だから
最長・最短の正確な照合はできない。
縦に探索して枝刈りするからね。

lex/egrepなら方式が違うから確実に最長一致するんだけどね。

377:デフォルトの名無しさん
12/02/04 21:01:04.24
あ、んで上の例の場合は正解が複数あるケースだから
どれを返すかはプログラムの作り方で偶然に決まりますん。

378:デフォルトの名無しさん
12/02/04 21:02:47.21
>>375
hmjre32.dllの動作はとっても特殊だよ

379:デフォルトの名無しさん
12/02/04 21:38:56.03
9文字マッチが正解

380:デフォルトの名無しさん
12/02/04 22:00:28.32
>>375
じゃあこれで

a{6,}|a{3,4}|a{6,}

真ん中を優先する実装があった場合はしらんw

381:デフォルトの名無しさん
12/02/04 22:10:09.84
>>380
突っ込み所が多すぎ。
とりあえず、a{11} にマッチするから結果が変わる。

382:デフォルトの名無しさん
12/02/04 22:47:38.88
最終的に全長が一番長いパターンが正解
同じ長さで複数の正解がある場合は
もうプログラムの作り方によって偶然決まる。

だから正確さを求める場合は
パターンを書く人が意識して気をつけるしかない。

383:デフォルトの名無しさん
12/02/04 23:04:20.27
>>380
「3a+4b (a,b∈N∪{0})」の値域が「0,3,4および6以上」だから確かに結果は異なるようだが、
「空文字列にマッチしないから」なら兎も角、「a{11}にマッチするから」は流石に阿呆すぎ

384:デフォルトの名無しさん
12/02/04 23:35:54.40
(?> ) を使えばいいだけでないの。

385:デフォルトの名無しさん
12/02/05 03:40:24.75
375です。ありがとうございます。

自分の方でも、いくつかのスクリプト言語で試してみました。
>>375の(aaa|aaaa)*ではなく、
(aaaa|aaa)+ として、あえて先に4文字のaaaaを書くようにしました。

Java6、JRE32.dll では9文字マッチしました。
ActivePerl5.5 Python3 Ruby1.9 Firefox7 chrome16 IE8 は、
8文字マッチでした。

最終的に最長のマッチが主流だと思い込んでいたのですが、
失敗さえしなければ、最長のマッチとは限らない、という方が主流っぽいですね。

386:デフォルトの名無しさん
12/02/05 05:14:47.51
エンジンの種類によって変わるんじゃないか
バックトラックNFA、POSIX NFA、DFA

387:381
12/02/05 07:00:11.53
>>383
> 「空文字列にマッチしないから」なら兎も角、「a{11}にマッチするから」は流石に阿呆すぎ
なぜ阿呆?
面倒だから全部は指摘しなかったけどさ。
「真ん中が優先される」とか「a{6,}を二重に列挙してる」とか。

388:デフォルトの名無しさん
12/02/05 15:05:45.09
>>387
11文字にマッチすると何がだめ?

389:381
12/02/05 16:09:19.31
>>388
それは俺に聞くことか?

390:デフォルトの名無しさん
12/02/05 16:57:29.26
a11文字だった場合は11文字にマッチさせたいのが元だとおもうんだが、
11文字にマッチするようになっちゃうからアウトっていってるように見えたから

391:デフォルトの名無しさん
12/02/05 17:19:52.24
greedyとlongestの違いって奴だな。greedyを最長って訳してることが多いので
俺も憶えたてのころはしばらく騙されてたわ。


392:デフォルトの名無しさん
12/02/05 18:05:20.70
>>391
hmjre.dllはそのどちらでもないけどな。
|に関してはlongest的な動作をして、
繰り返しに関してはgreedy的な動作をしている(しかもバックトラックが不十分)

393:381
12/02/05 20:34:53.75
>>390
> 11文字にマッチするようになっちゃうからアウトっていってるように見えたから
(aaa|aaaa)* は a{11} にマッチしないのだからその認識で合ってるよ。
なぜそういう仕様なのかは俺が知るわけがない。

394:381
12/02/05 20:38:29.32
ごめん。a{11} にマッチするな。忘れてくれ…。

395:デフォルトの名無しさん
12/02/05 20:52:01.92
>>394
いや、^(aaa|aaaa)*$ のように前後に ^$ 付けたりして11文字にマッチするように強制すればマッチするけど、
そうじゃない場合は11文字にマッチするとは限らないのでは。少なくともPerlとかRubyはそのようだし。

396:デフォルトの名無しさん
12/02/05 22:13:58.57
(aaa|aaaa)*で表現される文字列の集合には11文字も含まれるから、マッチする

正規表現でマッチする/しないというのは「ある文字列がパターンで表される文字列の集合に含まれるかどうか」でしょ
>>395の実装の話は「マッチする部分を探す」という処理で、解が複数あるときにどれを選択するかというのが
上で挙がっているgreedyとかlongestとかの話

397:デフォルトの名無しさん
12/02/06 01:07:40.80
●正規表現の使用環境
bat

●検索か置換か?
検索

●説明
先頭に[があるかどうかを検索したい
例えば
set a="[色々な文字列"
echo %a%|findstr /r /c:"^.[." 1>nul
これでダメだったので質問させて頂きました

●対象データ
"[aaa"
"(bbb) [ccc]"
"(ddd) eee ["
"[fff] [ggg]"


●希望する結果
"[aaa"
"[fff] [ggg]"

よろしくおねがいします

398:デフォルトの名無しさん
12/02/06 01:09:18.34
^\[

399:デフォルトの名無しさん
12/02/06 01:42:06.59
ありがとうございます。^.\[.で出来ました

400:388 (!= 383)
12/02/06 06:23:40.38
>>394
ならよかった。なんか見落としてたのかとおもてた

401:デフォルトの名無しさん
12/02/06 19:11:03.78
C#スレから誘導されてきました


正規表現で

${aaa}
に一致して、

${aaa
}
に一致させないようなパターンはどうやって書けばいいのでしょうか?

\$\{([^}+)]\}
だと、2つ目のパターンでaaa\r\nを取得してしまいます
宜しくお願いします

402:デフォルトの名無しさん
12/02/06 19:18:16.22
中身
.*?

403:デフォルトの名無しさん
12/02/06 19:38:05.20
できました!
ありがとうございました!

404:デフォルトの名無しさん
12/02/07 00:24:07.47
."*?"は>>401の条件であれば間違っていないです。

ただ、↓がより正確な書き方かな。

\$
\{
[^
\{\}\r\n
]+
\}

."*?" だと、「${aaa}bbbにマッチさせたい」というように、後ろに追加条件が加わると誤作動の
原因になります。(${aaa}改行${ccc}bbbにマッチしてしまう)

//エスケープは分かりやすいように付けてます。

405:デフォルトの名無しさん
12/02/07 00:47:40.13
.*?} は非欲張りだから最初の } までしか食べないし
ドットは改行に(通常)マッチしないよ

406:デフォルトの名無しさん
12/02/07 21:57:17.17
\$\{([^}+)]\}って括弧の対応おかしくね?

407:デフォルトの名無しさん
12/02/08 05:58:46.47
>>404
改行オプションやら仕様変更やらに左右されない正規表現ってことかー、そういう考え方もあるんだ、ふむふむ。

408:デフォルトの名無しさん
12/02/08 13:54:48.43
正規表現について詳しい方お答えお願いします。
下の<img から /span>までのソースを正規表現でマッチさせて下のプログラムをうまく動かしたいのですが、
$patternの中にどのような正規表現を書けば良いでしょうか?
正規表現にあまり詳しくないなりに試行錯誤したのですがどうにも動きません。

$matches[2]に2.22を
$matches[3]に3.33%を代入したいのですが、
$matches2[1]にdown_rを

どなたか分る方は居られませんでしょうか?お答えお願い致します。
※できるだけ簡潔なのがありがたいです。
※ソース自体をいじったりせず$patternにどんな正規表現をを代入するか、で教えていただきたいです(あまり詳しくないんでそうしないと分らないと思うので)
※heightやstyleやid等、一定じゃない物はどんな数値に変わっても対応できるようにしたいです。

改行の制限に引っかかってしまったのでソースは下に書き込みます。

409:デフォルトの名無しさん
12/02/08 13:55:35.36
408の続き

$getHtml = "<img width="11" height="11" style="margin-right:11px;" border="1" src="URLリンク(aa.bb.cc)" alt="ii"> 2.22</span><span id="jj">(3.33%)</span>";

$pattern = "";

if(preg_match($pattern, $getHtml, $matches))
{
   $pattern2 = "/<img.*?(down_r|down_g|up_r|up_g)\.gif/s";

   if(preg_match($pattern2, $matches[1], $matches2))
   {

   }

   if($matches2[1] == "down_r")
   {
      $matches2[1] = "down_g";
   }
   elseif($matches2[1] == "up_g")
   {
      $matches2[1] = "up_r";
   }

   $tmpString = $matches[2]."(".$matches[3].")";

   imageSave($values,$matches2[1],$tmpString,$flag5min);


410:デフォルトの名無しさん
12/02/08 14:40:26.03
なんちゃら知恵袋の回答を待ったほうがいいとおもうよ
答えてくれてる人がかわいそう

411:デフォルトの名無しさん
12/02/08 15:08:44.54
そんなの、遅い方が悪いだろ・・・

412:デフォルトの名無しさん
12/02/08 15:23:49.04
悪いとも思ったのですが、ちょっと急ぎなので、、、

413:デフォルトの名無しさん
12/02/08 15:26:52.32
こんな感じか?
.+?>(.+?)<.*?span.*?>(.+?)</span>

414:デフォルトの名無しさん
12/02/08 15:28:25.60
そうだぞ、>>412さんは急ぎなんだから遅い奴なんか待ってらんねーんだよ

415:デフォルトの名無しさん
12/02/08 15:32:13.91
急ぎとかアンタ以外の人間にとってはどうでもいいことだ
ソースも腐ってるし
業務ですぐ必要だというなら金出してやってもらえばいいことだしな
俺ならタグ解析させるけどな

ソースがゴミに埋もれてるからできないというなら処理する前に掃除すればいいんだよ

416:デフォルトの名無しさん
12/02/08 15:33:11.08
業者っぽいなー、正規表現使わなくても出来ることだし時間無いならそうすればいいのに。
仕事をネットに下請けさせんなし。正規表現使わなくても出来ることなんで教える必要なしと判断した。

417:デフォルトの名無しさん
12/02/08 15:35:12.94
お前らマルチはスルーするって知ってる?
答えてもらえりゃ何でもいい、腐った奴らなんだから答えなくていいんだよ

418:デフォルトの名無しさん
12/02/08 16:02:30.57
>>413

これじゃ無理じゃね?

419:デフォルトの名無しさん
12/02/08 16:14:30.48
>>415

なんか嫌な事でもあったのか?

420:デフォルトの名無しさん
12/02/08 16:20:22.26
生きてて嬉しいことなんて正規表現が一発で通ったときくらいだよな

421:412
12/02/08 16:21:07.70
すいません
こんなに皆さんの気分を害するとは思いませんでした

422:デフォルトの名無しさん
12/02/08 16:28:24.36
向こうの返事よりこっちの質問のほうが早いっていうのはマナー的に残念。礼儀は大事だよ。

423:412
12/02/08 16:45:31.36
>>409

これ

$getHtml = "○○<img width="11" height="11" style="margin-right:11px;" border="1" src="URLリンク(aa.bb.cc)" alt="ii"> 2.22</span><span id="jj">(3.33%)</span>";

○○の部分が必要じゃね?あんまり詳しくないから勘だけど


424:412
12/02/08 16:49:48.81
途中で切れてしまいました。
すいません。
知り合いから(といっても相談できるような仲じゃないのですが)
423にあるような指摘を頂いたので
一応書かせていただきます。
もし気が向いた方がいらっしゃたら御教授願います。

$getHtml = "<span class="aaa"><span id="bbb"><img width="11" height="11" style="margin-right:11px;" border="1" src="URLリンク(aa.bb.cc)" alt="ii"> 2.22</span><span id="jj">(3.33%)</span>";


425:デフォルトの名無しさん
12/02/08 16:55:47.85
御教示

426:デフォルトの名無しさん
12/02/08 17:17:03.85
あれ、教授も合ってないっけ?

427:デフォルトの名無しさん
12/02/08 17:18:54.53
$pattern = "/<span class=\".*?\"><span id=\".*?\">(.*?)>(.*?)</span><span id=\".*?\">\((.*?)\)/s";

・・・じゃ駄目か、・・・駄目だろうなー

428:デフォルトの名無しさん
12/02/08 17:23:28.61
>>424

<span id="bbb"><img\s.*(?:\s|")src=".*((?:down|up)_[gr])\.gif".*>\s*((?:[1-9]\d*|0)(?:\.\d+)?)<\/span><span id="jj">\(((?:[1-9]\d*|0)(?:\.\d+)?%)\)<\/span>

429:デフォルトの名無しさん
12/02/08 17:33:14.51
>>426
あってる。ただしその場合、
「より親切丁寧にお母さんみたく優しく教えれ」
って意味になる


430:デフォルトの名無しさん
12/02/08 17:34:18.98
あはは

431:デフォルトの名無しさん
12/02/08 17:38:35.99
>>428

これだと
matches[1]の部分が間違ってないか?

432:デフォルトの名無しさん
12/02/08 17:46:16.90
もっと簡潔に書けそうだが

433:デフォルトの名無しさん
12/02/08 18:22:20.19
質問です。

ダブルクォーテーション(")に囲まれた文字列を検索する時
\".*?\"で検索できますが、これだと改行が除かれます。
文字列の中に改行を含める場合は、どのように記述すれば良いのでしょうか?


434:デフォルトの名無しさん
12/02/08 18:30:12.19
>>432
簡潔と手抜きは違うからな

435:デフォルトの名無しさん
12/02/08 18:32:40.11
>>433
ドットに改行を含めるオプション(使用言語ごとに異なる)を使うのがお手軽


436:デフォルトの名無しさん
12/02/08 18:32:45.27
>>433
\"[\s\S]*?\"

437:デフォルトの名無しさん
12/02/08 19:01:53.83
>>424
自演失敗のフォロー?

438:デフォルトの名無しさん
12/02/08 21:34:00.95
>>425-426
師弟がみっちり学問を教える時は「ご教授」も使うらしいが、
一般的な「教えて下さい」の時は「ご教示」を使うのが一般的。

日本語変換がイマイチというより、元の意味を知らずに使ってる人多数。
まるで昔の「独壇場」(正しくは独擅場)

439:デフォルトの名無しさん
12/02/08 23:14:23.93
独擅場(どくせんじょう)

440:デフォルトの名無しさん
12/02/09 04:17:14.62
>>438
三行目は重言じゃないか?

441:デフォルトの名無しさん
12/02/09 05:35:29.17
マルチのゴミクズが湧いてたのか
お前が食いっぱぐれてのたれ死んでも誰も困らないから
急ぎだとかそういう理由でマルチしてんじゃねぇよ池沼

442:デフォルトの名無しさん
12/02/09 06:06:08.62
XMLみたいなネストした構造って、
真面目にやろうとすると正規表現じゃ書けないよね。


と思ってたんだが、ちょっとググったら今はできるんだな
鬼車とか一部のエンジン限定だが。

443:デフォルトの名無しさん
12/02/09 08:29:51.51
何で環境限定してるんだ?
頭悪そう。

444:デフォルトの名無しさん
12/02/09 11:21:05.34
>>443
お前頭悪いってよく言われるだろ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch