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

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

正規表現 part 3

1 :デフォルトの名無しさん:2006/08/24(木) 19:04:59
正規表現(Regular Expression)スレです。

◆関連サイト
正規表現メモ
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://oraclesqlpuzzle.hp.infoseek.co.jp/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

◆関連スレ
[UNIX板] 正規表現
http://pc8.2ch.net/test/read.cgi/unix/1039165754/

◆前スレ
[1] http://pc8.2ch.net/test/read.cgi/tech/1062152374/
[2] http://pc8.2ch.net/test/read.cgi/tech/1131028296/

2 :デフォルトの名無しさん:2006/08/24(木) 19:06:29
とりあえずまだpart2が埋まってない

3 :デフォルトの名無しさん:2006/08/24(木) 22:10:05
Javaで文字列属性チェックに使ったら糞重かった。
"[A-Za-z0-9]*"でサクッと半角英数字チェックするだけなのに
'a' <= c && c <= 'z'とかで判定する方が10倍速かった。

うーん、スクリプトだから許容できるのが正規表現だとでもいうのか。

4 :デフォルトの名無しさん:2006/08/24(木) 22:24:37
もっと複雑な場合こそが正規表現の使いどころ。

5 :デフォルトの名無しさん:2006/08/29(火) 11:35:25
/.*/

6 :デフォルトの名無しさん:2006/09/09(土) 17:31:20
>>3
まあそんなもんだわさ

7 :デフォルトの名無しさん:2006/09/12(火) 00:58:15
前スレは1000盗り合戦会場

8 :デフォルトの名無しさん:2006/09/13(水) 00:09:49
infoseek
インフォ正規
インフォ精液

9 :デフォルトの名無しさん:2006/09/13(水) 13:51:04
aaa111bbb222
という文字列から
変数aに111を、変数bに222を
格納するようにするにはどうしたらいいですか

10 :デフォルトの名無しさん:2006/09/13(水) 13:55:11
"aaa111bbb222" =~ /\d+/
a = $&
でaに111は格納できたんですが
222も見るにはどうしたらいいですか

11 :デフォルトの名無しさん:2006/09/13(水) 14:02:05
>>10
Ruby なら scan を使うと文字列を逐次正規表現マッチできて便利だよ。

"aaa111bbb222".scan(/([a-z]+)(\d+)/).each { |key, val|
p [key, val]
}

ブロックの中は適当に料理してちょ。

12 :デフォルトの名無しさん:2006/09/13(水) 14:15:26
ありがとうございました。
a = Array.new
"aaa111bbb333".scan(/\d+/).each{|tmp|
a << tmp
}
てな感じで解決しました。ありがとうございました。

13 :デフォルトの名無しさん:2006/09/13(水) 14:23:21
a = "aaa111bbb333".scan(/\d+/)

14 :デフォルトの名無しさん:2006/09/14(木) 05:46:09
なんかスクレイピングとかリライトっぽい質問ばかりだな

15 :デフォルトの名無しさん:2006/09/14(木) 10:14:56
それ以外の質問をしなくては何か都合が悪いことでもおありで?

16 :デフォルトの名無しさん:2006/09/14(木) 12:07:26
わたしと正規表現とどっちが大事なの?

って言われたらどっちを選びますか?


17 :デフォルトの名無しさん:2006/09/14(木) 12:11:11
性器を選びます。


18 :デフォルトの名無しさん:2006/09/14(木) 13:06:04
jul8,jun1というような日付を
jul08,jun01のように前に0を入れたいのですが
これを正規表現で実現しようとすると
数字と文字を別々にマッチさせて
$10$2のように書くと、$10と解釈されてしまいます
エスケープは置換文字列では使えないようなんですが
何か良い方法はあるでしょうか?

19 :デフォルトの名無しさん:2006/09/14(木) 13:08:08
 

20 :デフォルトの名無しさん:2006/09/14(木) 13:18:27
実装言語は何かを言ってくれないと的確な回答はできないと思うのだが、
勘で "${1}0${2}" とか。

21 :デフォルトの名無しさん:2006/09/14(木) 16:31:08
最近みつけたけど、ここ、まあまあわかりやすい

ttp://ukiya.sakura.ne.jp/

22 :デフォルトの名無しさん:2006/09/14(木) 17:49:04
>>21
正規表現テスターをとりあえずダウンロードした。

23 :デフォルトの名無しさん:2006/09/14(木) 19:19:36
(?:$1)0$2

24 :デフォルトの名無しさん:2006/09/14(木) 19:21:58
>>23は勘違いです(´・ω・`)

25 :デフォルトの名無しさん:2006/09/14(木) 20:22:33
もともと
jul08,jun01
がまざってたら
jul008,jun001
ができる

26 :デフォルトの名無しさん:2006/09/14(木) 20:33:36
>>25
んなこたあない。
s/([a-z]+)(\d)\b/${1}0$2/g;

27 :デフォルトの名無しさん:2006/09/15(金) 00:41:30
>>20
>>25
>>26
なるほど、自分の勉強不足でした。
{

28 :デフォルトの名無しさん:2006/09/15(金) 01:13:44
Ruby互換のOnigurumaという正規表現エンジンを
TextMateというエディタから用いて変換していました。
日本語マニュアルがないため、置換文字列でどんな構文
があるかきちんと調べた事がなかったですが、今回気になって
調べてみると(?1:$1)0$2という置換文字列でうまくいきました。
Perlのやり方も凄く勉強になりました。
お騒がせしてすいません。

29 :デフォルトの名無しさん:2006/09/15(金) 06:52:33
$1\x30$2 なんて方法もある。

30 :デフォルトの名無しさん:2006/09/18(月) 00:12:48
青空文庫のルビを消したいのだが
《.*》
だと
朝の|挨《あい》|拶《さつ》を

朝の|挨が
になっちゃうわけです。同一行に《が二つ以上現れなきゃいいんだけれども
実際現れるから困る。知恵を貸して欲しい

31 :デフォルトの名無しさん:2006/09/18(月) 00:15:28
>>30
s/《.*?》//g;
「perl 最短一致」でググれ。

32 :デフォルトの名無しさん:2006/09/18(月) 00:25:23
サンクス!なるへそね。恩にきる

33 :デフォルトの名無しさん:2006/09/18(月) 18:29:26
行頭の1〜3文字目にスペース以外の文字がある行を
マッチささたいのですがどうしたらいいですか?

34 :デフォルトの名無しさん:2006/09/18(月) 20:01:13
/^([^ ]| [^]| [^ ])/とか、perlでif (/^.../ && $& =~ /[^ ]/)とか。

35 :デフォルトの名無しさん:2006/09/18(月) 20:27:32
/^.{0,2}[^ ]/
勿論 !/^ / とはマッチするものが違う

36 :デフォルトの名無しさん:2006/09/18(月) 20:29:29
>>33
Perlなら、

$str !~ /^   /

じゃダメなの?

37 :デフォルトの名無しさん:2006/09/18(月) 21:12:42
>>36
それだと空行や1個や2個しか文字が無い行もマッチするけどね。

38 :デフォルトの名無しさん:2006/09/21(木) 00:03:58
[\n][\n]*
この正規表現は、二つ以上の連続した改行文字(\n)にマッチしますが
\n と \nの間にいくつかの空白文字(半角スペース, タブ)がある場合にマッチする表現がわかりません。

一応「 [\n](|[\s]*)[\n] 」と書いてみたものの、思うようにマッチしません。
どう表現すればよいのでしょうか? よろしくおねがいします。

39 :デフォルトの名無しさん:2006/09/21(木) 02:26:10
>>38

で、何を使ってでそれをやろうとしているの?
\s とかあるからPerlかな?

マッチングに使っている部分全部さらしてみ。


40 :デフォルトの名無しさん:2006/09/21(木) 02:38:33
>>38
正規表現勉強しなおせ


/\n\s+?\n/

41 :デフォルトの名無しさん:2006/09/21(木) 03:41:31
オマエモナーw

42 : ◆TWARamEjuA :2006/09/21(木) 19:15:26
s

43 :38:2006/09/21(木) 20:50:34
>>39
PHPのpreg()系です。

HTMLの<textarea>から</textare>に入力された文字から、連続した改行(=空行=)を取り除こうと思ったのです。
ただ、空行ではないけれど、改行と改行の間にスペース(タブも含む)がある行も取り除きたいのです。

これはどう表現すればよいのでしょうか?
当然ですがtextarea要素の内容は、全体を一つの文字列として扱うので「 ^$ 」という表現はダメでした。

44 :デフォルトの名無しさん:2006/09/21(木) 21:47:37
>>43
Rubyならhtmlパーサがあるから簡単に処理できるのだがな。

45 :デフォルトの名無しさん:2006/09/21(木) 23:00:15
>>43
> PHPのpreg()系です。

先に言えよ、ヴォケ!

$html = preg_replace_callback('{(?<=<textarea>)(.+?)(?=</textarea>)}si',
create_function('$matches',
'return preg_replace("/(?<=\\n)\\s*\\n/", "", $matches[0]);'), $html);

46 :デフォルトの名無しさん:2006/09/21(木) 23:11:48
題は空行削除であって、textatraタグは無関係でしょ

47 :45:2006/09/21(木) 23:43:23
>>46
ん?空行削除されてない?

48 :デフォルトの名無しさん:2006/09/22(金) 00:07:15
>>43
そんなときは、一度でやろうとせずに
まず 
「空白のみを含む行を削除」してから
「連続する改行を1改行に置換」するといいかもね。

49 :デフォルトの名無しさん:2006/09/22(金) 00:23:27
>>45
正規表現勉強しなおせw

50 :デフォルトの名無しさん:2006/09/22(金) 00:24:19
phpのeregで
@abc.gr.jp と @wxy-z.co.jp
以外のアドレスを拒否する場合
どうしたらいいでしょうか。

51 :45:2006/09/22(金) 00:47:13
>>49
コード出して指摘してくださいよ。

52 :デフォルトの名無しさん:2006/09/22(金) 01:59:16
>>43
ただのpreg_replaceでこんな感じでいけるだろ

/(^|\n)\s*(?:\n)/

あっちのスレで話題になってた各ブラウザの挙動がどうのは知らん

53 :デフォルトの名無しさん:2006/09/23(土) 08:29:03
Perlで、
 &gt; から &lt; に含まれる <br> のみ全て削除するにはどうすればいいでしょう?

$str =~ s/&lt;(.*?)<br>(.*?)&gt;/&lt;$1$2&gt;/g;
でやってみたのですが、<br>が複数ある場合ひとつしか削除できません。
いろいろ調べたんですが行き詰りました。
低レベルな質問かもしれませんがお願いします。
(文中の&は全角ですが実際は半角でやってます。)

54 :デフォルトの名無しさん:2006/09/23(土) 09:05:05
sub delbr {
my ($tmp) = @_;
$tmp =~ s/<br>//g;
return $tmp;
}
を用意した上で
s/&gt;(.*?)&lt;/delbr($&)/ge;

55 :デフォルトの名無しさん:2006/09/23(土) 17:59:43
エディタとかで検索や置換する程度なのですが、
正規表現だけで、Not条件を加えるのは無理なんでしょうか?

http://www.kt.rim.or.jp/~kbk/regex/regex.html#CCLASS
にあるような、よくある勘違いの例と同じなのですが、
ここで言うと[^foo]が"foo"以外では無く、fとo以外の一文字をあらわすのはわかります。

でも、それではその"foo"を全体を含まない文字列というのを
表現(追加)したい場合はどうすればいいんでしょうか?

"|"でorが出来るみたいにnotできたら簡単確実なのに、うまく除外するのに毎回頭を絞ってます。
検索等フロントエンドの実装で、否定条件指定のフィルタリングがある場合ならいいんですが…

例えば[^(giko|mike)]nekoみたいな感じで、簡単に文字列や正規表現全体を
否定(〜以外)できたらなにかと便利だと思うのですが、
それは正規表現の範疇外なのでしょうか?

うまくやる方法はありますか?

56 :デフォルトの名無しさん:2006/09/23(土) 18:26:40
(?!giko)(?!mike)(?=neko)
こうですか!? わかりません!

…原理はわからないが環境によっては動くな。おいおい勉強しまつorz

57 :デフォルトの名無しさん:2006/09/23(土) 18:39:05
AJAXでリアルタイムに正規表現チェックできるサイト
すごい便利。

Rex V: an AJAX Regular EXpression eValuator
http://www.rexv.org/



58 :デフォルトの名無しさん:2006/09/23(土) 18:46:54
>>55-56
何を何でやりたいのかはっきり書かないからレスがない。


59 :デフォルトの名無しさん:2006/09/24(日) 00:18:49
[^(foo)]

60 :デフォルトの名無しさん:2006/09/24(日) 10:55:50
>55

\b(?:(?!giko|mike)\w)+neko

とか、どうですか。

61 :デフォルトの名無しさん:2006/09/24(日) 11:06:49
([あ-ん]|あっ)*

62 :デフォルトの名無しさん:2006/09/24(日) 11:36:40
>>61
おまえのアヌスになど興味はない

63 :デフォルトの名無しさん:2006/09/24(日) 20:50:08
ワロタ

64 :デフォルトの名無しさん:2006/09/24(日) 22:59:48
* ←アナル

65 :デフォルトの名無しさん:2006/09/24(日) 23:18:17
 * ←アナル
ξ←ソフトクリーム

MS Pゴシックで見てね1

66 :デフォルトの名無しさん:2006/09/25(月) 00:05:06
    ∧_ ∧     ([あ-ん]|あっ)*
   (´∀` )
    (⊃⌒*⌒⊂)
     /__ノ''''ヽ__)

67 :デフォルトの名無しさん:2006/09/25(月) 20:11:30
<a href='javascript:window.open("http://hoge/page","f","width=460,height=400");void(0);'>javascript:window.open</a><br>
のようなリンクを
<a href='http://hoge/page'>javascript:window.open</a><br>
にするには
Obj.href.replace(/JavaScript:window.open\((\"?|\'?)(.*?)(\"?|\'?),?.*\);?(.*);?/ig,'$2')
ではうまくいきません。
よろしくお願いします。

68 :デフォルトの名無しさん:2006/09/25(月) 20:24:20
age

69 :デフォルトの名無しさん:2006/09/26(火) 18:09:05
Cソース中の2つのコメントの、「//・・・」と「/*・・・・・*/」を、空白に置き換えることは可能ですか?
置き換えるのは空白一文字ではなく、コメントになっている文字分空白にしたいです

70 :デフォルトの名無しさん:2006/09/26(火) 23:01:46
$text='</a></b>AIUEO</c>';
$pat='>(.*?)</c>';
if($text=~/$pat/) {
 print $1."\n";
}
else {
 print "ng\n";
}

AIUEOのみ抽出したいのですが、</b>AIUEOが返ってきます。
.*?は最短マッチのはずですが、なぜでしょうか?

71 :デフォルトの名無しさん:2006/09/26(火) 23:29:57
>>69
こういう例を考えると正規表現よりCでコード書いた方が早いと思うよ
printf("string//string"); // print

>>70
Perlでは一度成功したらそれでマッチが完了する
最短なのは .* に関してのみ
>([^<>]*)</c>
で望みのマッチをする

72 :デフォルトの名無しさん:2006/09/26(火) 23:39:31
>>70 おまえもしかして、あき?

73 :70:2006/09/27(水) 00:12:15
>>71
>Perlでは一度成功したらそれでマッチが完了する
これは前方から順に一致検索をしているとから、ということですか?
たとえば、
$text='</b></b>AIUEO</c></c>';
$pat='</b>(.*?)</c>';
の場合、$textの先頭側にある</b>と</c>に挟まれた文字列が抽出されてくるから、</b>AIUEOがマッチ。
もし後方から一致検索されていれば、AIUEO</c>がマッチするはずですもんね。

スマートな方法がなさそうなので([^<>]*)にしときます。
ありがとうございました。

>>72no

74 :デフォルトの名無しさん:2006/09/27(水) 12:03:56
#!/usr/bin/perl -p0777
BEGIN {
$COMMENT = qr{/\*.*?\*/};
$COMMENT2 = qr{//[^\n]*};
$DOUBLE = qr{\".*?[^\\]\"};
$SINGLE = qr{\'.*?[^\\]\'};
$OTHER = qr{[^"'/]};
}
s/($DOUBLE|$SINGLE|$OTHER+)|$COMMENT|$COMMENT2/$1/g;

詳説 正規表現がどっかにいってしまった
添削希望

75 :デフォルトの名無しさん:2006/09/27(水) 12:10:09
コメントを除去したいならプリプロセッサに通せば良いと思うんだ

76 :デフォルトの名無しさん:2006/09/27(水) 20:30:05
Javaで正規表現を入力チェックに使ってる人って居る?
速度はともかく開発効率がいいから、
決められたライブラリしか使えないときに便利なんだよね

77 :デフォルトの名無しさん:2006/09/27(水) 23:51:17
>>74
意外とシンプルにまとまるんだね
リテラルで"string\\"のパターンが来ると内外逆転するかな
やり方はいろいろあるけど qr{"(\\.|[^"])*"} とか

78 :デフォルトの名無しさん:2006/09/28(木) 00:21:03
>>76
GUIコンポーネントの入力チェックに使ったことはあるな
ああいうのは手でコーディングするのは苦痛なだけだから。
あと、入力チェックが必要になるようなGUIコンポーネントの場合、
入力は一般的に短いので、速度は問題にならないし

79 :デフォルトの名無しさん:2006/09/28(木) 07:56:20
ちょっと質問

<aaa>
<aaa>
<aaa>
<aaa>
<data1>xxxx</data1>
<data2>yyyy</data2>
</aaa>
</aaa>
</aaa>
</aaa>
こんな文字列があったとして
正規表現つかって一発で一番内側にある<aaa>
の内側の文字を取ってくることってできるんだろうか・・・・
可能か不可能かどうかも想像がつかない・・・orz

80 :デフォルトの名無しさん:2006/09/28(木) 09:04:06
>>79
できる。

81 :デフォルトの名無しさん:2006/09/28(木) 09:23:50
>>80
横からスマソ
へぇ〜
出来るんだ
これは俺もちょっと興味深い

82 :デフォルトの名無しさん:2006/09/28(木) 12:00:38
<aaa>(?!<aaa>)(.*?)</aaa>

83 :デフォルトの名無しさん:2006/09/28(木) 15:40:04
XMLを無理やり正規表現で扱うくらいなら
最初からXMLとして扱ったほうが楽なんじゃないの?

84 :デフォルトの名無しさん:2006/09/28(木) 18:50:49
長さ優先じゃなくて出現優先にすりゃいいだけだね

85 :デフォルトの名無しさん:2006/09/28(木) 19:22:59
>>80
入れ子処理だよね。正規表現第二版だと…

( )の入れ子の場合こうなっているから、
$LevelN = qr/ (?> [^()]+ | \( ??{ $LevelN }) \) )*/x;

えーと………

$LevelN = qr/ (?> [^(<aaa>|<\/aaa>)]+ | <aaa> (??{ $LevelN }) <\/aaa> )*/x;


……(<aaa>|<\/aaa>)の否定ってどうやるんだ?


後は任せた orz

86 :デフォルトの名無しさん:2006/09/28(木) 20:12:05
正規言語でない言語を正規表現で扱おうとするのはやめた方がいいんでないかと
いや、今の「正規表現」が厳密には正規表現じゃないのは知ってるけど、やっぱり
無理やり拡張したため、無理が出てると思うんだ

87 :デフォルトの名無しさん:2006/09/29(金) 00:07:24
別に拡張表現使わなくてもできるけど。
/(<aaa>)*(.*?)<\/aaa>/

88 :デフォルトの名無しさん:2006/09/29(金) 01:50:24
バックトラックしまくりそうだけど。一応。

(<aaa>.*)*<aaa>(.*?)<\/aaa>

Perlなら、(<aaa>.*?)*<aaa>(.*?)<\/aaa>
でもイケた。

89 :デフォルトの名無しさん:2006/09/29(金) 04:41:56
>Perlなら、(<aaa>.*?)*<aaa>(.*?)<\/aaa>
Perlなら、{(?:<aaa>.*?)*<aaa>(.*?)</aaa>}m

90 :デフォルトの名無しさん:2006/09/29(金) 10:15:22
1. Function
2. End Function
3. Exit Function
上記で1だけを検索したい場合どうすればいいでしょうか?

↓ではだめでした
 (?<!(Exit|End))\s*Function



91 :デフォルトの名無しさん:2006/09/29(金) 10:20:41
>>90
^Function$
でいいんじゃね?

92 :デフォルトの名無しさん:2006/09/29(金) 10:39:03
>>80->>89
トンクス!
もらった情報でなんとかなったさ〜!
ソフトでガリガリ解析するのがたまらなかったんで・・・

ちなみにXML解析じゃぁないんだけどね(^^;
俺ももっと勉強しなきゃ・・・だなぁ(;´Д`)

もっと頭やわらかくする必要がありそうだorz

93 :デフォルトの名無しさん:2006/09/29(金) 10:43:36
>>90
(?:^|[^dt\s]|(?:^|[^n]|(?:^|[^E])n)d|(?:^|[^i]|(?:^|[^x]|(?:^|[^E])x)i)t)\s*Function

オレならFunctionでマッチさせてマッチ位置もらってからEndかExitが前に
ないことを別途調べるな。否定と正規表現は相性悪い。



94 :デフォルトの名無しさん:2006/09/29(金) 10:45:47
パーサ書いた方が実装容易で見通しも保守性も拡張性もあって良いような気がする漏れは失格ですかそうですか。

95 :デフォルトの名無しさん:2006/09/29(金) 11:06:53
タグ系はXPathでええやん

96 :デフォルトの名無しさん:2006/09/30(土) 02:44:00
>>94
俺も同じこと思った。あと、XMLだとそもそも既存のパーサがあるのに
何故それを使わないで正規表現で済まそうとするのかと。あと、ある要素
取り出すだけなら、>>95の書いているようにXPath使う手もあるな

97 :デフォルトの名無しさん:2006/09/30(土) 06:37:14
アクセスログから検索ワードを抽出するのを試みたいんだけど、
色んな検索エンジンや仕様があって把握しきれません
まとめたサイトみたいなものはありませんか

98 :デフォルトの名無しさん:2006/09/30(土) 11:41:39
>>97
>>1

何のためのテンプレよ。

99 :デフォルトの名無しさん:2006/09/30(土) 13:37:17
perlの
(?{ code })
Perlにおいて、埋め込まれたPerlコードを実行します
(??{ code })
Perlにおいて、埋め込まれたPerlコードを実行してその結果を正規表現を表すものとして使用
ができる、windows用の置換ツールってありますか?

100 :デフォルトの名無しさん:2006/09/30(土) 14:03:11
何に使うの?

101 :デフォルトの名無しさん:2006/09/30(土) 14:08:17
>>99
Perl

102 :デフォルトの名無しさん:2006/09/30(土) 19:01:09
bbbにマッチさせるにはどうすればよいでしょう?
ただし、次のように、bbbが<x>と</x>に囲まれている場合は除きます。
また、aaa,bbbは0個以上の任意の文字列とします。
言語はrubyです。

<x>aaabbbccc</x>

自分でやってみた結果はこうです。

/(?!<x>.*)bbb(?!.*<\/x>)/

これでうまくいっているように見えますが、
他に書き方があればよろしくお願いします。

103 :デフォルトの名無しさん:2006/09/30(土) 19:03:35
>aaa,bbbは0個以上の任意の文字列とします。

aaa,cccは0個以上の任意の文字列とします。
でしたorz

104 :デフォルトの名無しさん:2006/09/30(土) 19:14:42
思うんだがなんで自分でパーサ書かないのかな?
XMLだとタグが1行におさまっているとは限らないわけで

<x
>
aaabbbccc
</x>

とかも考えられるでしょ?
そんなのを正規表現でやる方がおかしい

105 :デフォルトの名無しさん:2006/09/30(土) 19:22:09
確かにブランクの扱いに特徴のあるものは正規表現に向いてないな。

106 :デフォルトの名無しさん:2006/09/30(土) 20:00:16
タグは必ず1行におさまります。個人的に利用してるデータで、XMLとかじゃないんですよ。
なので、実は括弧は目印にすぎませんから、形式は何でもいいんです。
ただ、マッチした部分を括弧で囲みたいわけです。しかし、すでに括弧で囲まれている場合は、
不要なんです。入れ子にしたくないわけです。

107 :デフォルトの名無しさん:2006/09/30(土) 20:34:17
>>106
「括弧」って何の話?

108 :デフォルトの名無しさん:2006/09/30(土) 20:46:18
require 'html'
html = HTMLtokens.new('ファイル名l')
html.between("x") { |i| html.tokens[i] = html.tokens[i].gsub(/b+/, 'c') }

109 :デフォルトの名無しさん:2006/09/30(土) 20:49:14
まあそれでも<x>aaaa¥<bbb</x>とかではまったりするわけよ
正規表現にふさわしくない題材だと思うね

110 :デフォルトの名無しさん:2006/09/30(土) 20:51:18
テンプレサイトに置いてるHTMLパーサ使えば、
広告のカットやテーブル項目の並び替えとかスクリプトからできるんだが。
マニュアルが無いせいなのかな。

111 :デフォルトの名無しさん:2006/09/30(土) 20:56:49
XMLを正規表現でやるのはやっつけ仕事の時だけ

112 :デフォルトの名無しさん:2006/09/30(土) 20:57:56
正規表現の実装というと、やっぱりPerlが基準になるのか?
あまりいいたくはないが、「Perlの正規表現に準拠」ってなるのか。
Perlから正規表現の道に入ったからさ。

113 :デフォルトの名無しさん:2006/09/30(土) 21:00:27
POSIXが基準だろ。
漢字が扱えるのでPOSIXなのはboostだと思う。

114 :デフォルトの名無しさん:2006/09/30(土) 21:30:50
ふ〜ん。たんくす。

115 :デフォルトの名無しさん:2006/09/30(土) 21:37:12
>>109
というか、何でもかんでも正規表現で扱えるわけじゃないというのを
知らない奴が多過ぎる。自分の周りでもXMLのパーサを一生懸命
正規表現で書こうとしてる奴がいたりして、辟易する

116 :デフォルトの名無しさん:2006/09/30(土) 21:38:55
汎用的なトーカナイズパーサーが無いからじゃねーの?

117 :デフォルトの名無しさん:2006/09/30(土) 21:41:18
XMLパーサはライセンスと段取りのメンドさが問題だろ。

あとWEB上のルールのいいかげんなHTMLの処理も出来ないから、
例えばショップのWEBページから価格を吸い出して
XMLに保存という時にも困る。

118 :デフォルトの名無しさん:2006/09/30(土) 23:37:56
>>114
納得すんなよ

119 :デフォルトの名無しさん:2006/10/01(日) 00:37:01
>>114
Perlの正規表現はPOSIXのそれを超えている。

120 :デフォルトの名無しさん:2006/10/01(日) 00:45:58
Perlの正規表現の欠点は

・仕様の合わせ込みが厄介なこと、
・DFAのエンジンとの親和性が低いこと
・コストの計算が難しいこと(計算量の爆発の予測しにくい)
・最短の一致を見つけるのが遅くなる(ifの条件式とかは別に最短でも成立する)

原因は縦型探索で比較の順序の影響を受けることにある。

121 :デフォルトの名無しさん:2006/10/01(日) 01:12:01
c++0xのregexのドラフトには、POSIXの他ECMAScript準拠の正規表現も
盛り込まれてる。
最初の版だとPerl準拠のもあったんだけど、削除されてしまった。

122 :デフォルトの名無しさん:2006/10/01(日) 01:18:43
あと、将来的にメニイコアでスレッド立てまくりな環境になった場合、
POSIXだと完全な最長一致だから並列実行で設計できるが
Perl式だと互換性のすり合わせが難しくなるだろ。
(最初に見つけた結果で探索を打ち切るのだがその順番が)

123 :デフォルトの名無しさん:2006/10/01(日) 01:28:31
>>118-119
やっぱりPerlは詰め込み杉ってところだよね。
最近では、java.util.regex をよく使ってる。
javascriptだとブラウザ対応でどこでも動くから、
javascript の正規表現を知っておくと良さそうだね。
メジャーな実装としては、perl, ruby, javascript (java, c$)ってところかな?
ありがとね〜

124 :デフォルトの名無しさん:2006/10/01(日) 13:10:09
>>111
>XMLを正規表現でやるのはやっつけ仕事の時だけ

それって某社の取締役最高技術責任者のこと?

125 :デフォルトの名無しさん:2006/10/04(水) 13:28:03
0〜100までしか入力できないようにする方法ありますか?

126 :デフォルトの名無しさん:2006/10/04(水) 17:18:08
言語を教えろ、言語を。

127 :デフォルトの名無しさん:2006/10/04(水) 17:35:35
/^(100|[1-9]\d|\d)$/

128 :デフォルトの名無しさん:2006/10/04(水) 21:05:15
if文でゴー!

129 :デフォルトの名無しさん:2006/10/10(火) 10:28:06
a-z A-Z 0-9 のように全角記号を始点から終点で指定するには?


130 :デフォルトの名無しさん:2006/10/10(火) 11:54:44
>>129
全角記号の定義とエンコードによってまちまちなんでね?

131 :デフォルトの名無しさん:2006/10/10(火) 22:37:50
http://up.nm78.com/data/up112376.jpg

132 :デフォルトの名無しさん:2006/10/10(火) 22:53:33
>>131
あとついあったよね、会談。
はずしてやんの。

133 :デフォルトの名無しさん:2006/10/10(火) 23:03:19
占星術は統計学なんだから、断言してる時点で詐欺師

134 :デフォルトの名無しさん:2006/10/11(水) 00:11:47
>>132



???

135 :デフォルトの名無しさん:2006/10/11(水) 12:28:34
>>130
unicode

つか、それぞれのエンコードの定義マップ見たらいいわけ?


136 :デフォルトの名無しさん:2006/10/11(水) 17:12:53
HTMLのソースから任意の拡張子ファイルにリンクしているサムネイル画像のURLを
取得したいのですが、どういう正規表現で可能でしょうか?

具体的には例えば

 <a href=xxx.mpg><img src=/image/zzz.jpg></a>

このようなものから/image/zzz.jpgを抜き出したいのです。

WEB巡回する用途なので、コロンやらパスやらのフォーマットは
多様なものに対応したいと思っています。言語はPHPです。

137 :デフォルトの名無しさん:2006/10/11(水) 18:37:03
迷惑スクレイパー

138 :デフォルトの名無しさん:2006/10/12(木) 02:14:12
行の2〜4桁目が3a1以外と3a3以外がある行を見つけるには
どのようにしたらいいでしょうか?

139 :デフォルトの名無しさん:2006/10/12(木) 05:14:06
grep -v '^.3a[13]'

140 :デフォルトの名無しさん:2006/10/12(木) 10:15:40
マッチさせたい文字
aaa xxx
bbb
マッチさせたくない文字
aaa xxx
yyy
bbb

perlのマルチラインモードで「aaa.*?$^bbb」でいけると思ったのですがだめでした。
上記の条件にあう正規表現を教えてください。

141 :デフォルトの名無しさん:2006/10/12(木) 15:38:35
(?<=yyy)bbb

142 :デフォルトの名無しさん:2006/10/12(木) 20:11:01
>>141
すいません。
yyybbbにもマッチさせないです。
というか、正規表現のマルチラインで
改行を、$^で指定できないのでしょうか?

143 :デフォルトの名無しさん:2006/10/12(木) 20:28:19
改行文字書いちゃえば?
/aaa.*¥nbbb/;


144 :デフォルトの名無しさん:2006/10/13(金) 03:19:28
一度"\n"でjoinして
/aaa([^\n])\nbbb/
でいいんじゃないか?

145 :近藤雅彦:2006/10/13(金) 11:18:33
マッチさせたい文字
aaa xxx
bbb
マッチさせたくない文字
aaa xxx
yyy
bbb

無理
bbbはどうすんのさ

146 :近藤雅彦:2006/10/13(金) 11:19:29
なんだ改行ありかよ
否定先読みでも使っとけ

147 :デフォルトの名無しさん:2006/10/13(金) 11:36:46
何を前提にしているのかよくわからんが、perlのmは、

^が改行の直後にもマッチ
$が改行の直前にもマッチ

するようになるだけ。したがって$^で改行それ自体を指定する
ということにはならない。

143のいうように普通に\nとして書け。


148 :デフォルトの名無しさん:2006/10/13(金) 13:28:10
if (aaa == bbb) {
xxxxxxxxxxxxx
xxxxxxxxxxxxx
xxxxxxxxxxxxx
}

xxxの中に、hogeが一切どこにも入らない if () { .... } を検索したいのですが、
perlの正規表現でできますか?

149 :近藤雅彦:2006/10/13(金) 17:01:47
>>148
否定先読み

150 :デフォルトの名無しさん:2006/10/13(金) 20:53:44
>>149
できない!
M/if[^}]*(?!hoge)}/m

151 :デフォルトの名無しさん:2006/10/13(金) 21:41:48
<b>(.+?)</b>

みたいな正規表現を見かけたのですが、

.+? ってどうして
.+ じゃいけないんですかね

152 :デフォルトの名無しさん:2006/10/13(金) 21:49:03
>>151
<b>...</b>...<b>...</b>
の外側の<b>〜</b>にマッチしてしまったりするから

153 :デフォルトの名無しさん:2006/10/14(土) 16:34:24
>>150
>>1
の内容を理解してない低脳だから

154 :デフォルトの名無しさん:2006/10/14(土) 20:48:54
学び始めたばっかいまいち解っていないのですが、2chのようにhttpが書かれたら
リンクをつけたいのですが、どうしても上手くいきません。
単に正規表現が間違ってるだけかと思われるのですが、
普通、httpにリンクをかける場合どのような正規表現をもちいればいいのでしょうか?
今、phpでpreg_match('/^http://+[a-zA-Z0-9\.\-\=\/\%\$\?\&\_]$'、$a)のような
変な書き方をしているですが、どうかよろしければ正しい方法を教えていただけないでしょうか?

155 :デフォルトの名無しさん:2006/10/14(土) 23:03:35
>>153
難しくてわからないんだよぉ〜。
どうしてもifから}間での間に文字が入らないの先読み否定がうまくできない・・・

156 : ◆TWARamEjuA :2006/10/15(日) 00:32:11 ?BRZ(6667)
https?://\S+
なんてどうかしら?

157 :デフォルトの名無しさん:2006/10/15(日) 02:33:45
>>156
www.hoge.comですよ
の ですよ もひっかからね?

158 :デフォルトの名無しさん:2006/10/15(日) 04:40:33
>154
googleで「URLの正規表現」を検索すれば

159 : ◆TWARamEjuA :2006/10/15(日) 09:24:22 ?BRZ(6667)
>>157
そういうのは引っかからないで欲しいですよね。
www.hoge.com/search.php?query=ですよ
こゆのは引っかかって欲しいですよね♪

URI(URL)の正規表現なんて、どこまでを通すか通さないのかのさじ加減が難しいのかと思うのですです。

160 :デフォルトの名無しさん:2006/10/15(日) 09:54:53
一般的に考えてURLの末尾には改行かスペースが入るだろう。
wikipediaへなんかのリンクだと日本語も使われるので、それは引っ掛けてほしいところ。

161 :デフォルトの名無しさん:2006/10/16(月) 13:53:14
http://72.14.203.104/
なんてね

162 :デフォルトの名無しさん:2006/10/18(水) 00:01:02
>>159
安易に
https?://[!-~]+[=\?&]?\S+
日本語の前に来る記号にどんな種類があるか知らないけど w

163 :デフォルトの名無しさん:2006/10/18(水) 20:04:42
if(/○○○/../□□□/)ってどういう意味?

164 :デフォルトの名無しさん:2006/10/18(水) 20:39:03
○○○が含まれるものから、□□□が含まれるものの間は真ってことじゃないのかな?

165 :デフォルトの名無しさん:2006/10/18(水) 23:11:32
オライリーの「正規表現」に
URLにマッチする正規表現が載ってなかったっけ?

166 :デフォルトの名無しさん:2006/10/18(水) 23:27:45
あるけどあんまり好きじゃないな、あのやり方・・・

167 :デフォルトの名無しさん:2006/10/19(木) 16:26:13
>163
http://d.hatena.ne.jp/palmo/20060724/rangeop

>165
http://www.din.or.jp/~ohzaki/regex.htm#URI

168 :デフォルトの名無しさん:2006/10/20(金) 18:30:29
asdf
asdfasdf
asdfasdfasdf

一行目の asdf だけに一致させたい場合
どうすればよいのでしょうか?

169 :デフォルトの名無しさん:2006/10/20(金) 18:50:51
^asdf$

170 :デフォルトの名無しさん:2006/10/20(金) 19:20:33
>>169
アリガd

171 :デフォルトの名無しさん:2006/10/24(火) 02:14:14
perlの正規表現で (a|b) と ([ab]) にパフォーマンスの差はありますか?
(a|b|c) と ([abc]) の場合はどうでしょう?

172 :デフォルトの名無しさん:2006/10/24(火) 09:35:56
>>171
文字クラスで十分なときは文字クラスの方が速いらしいが
気になるならベンチとって確認しろ。


173 :デフォルトの名無しさん:2006/10/25(水) 17:04:24
RUBYで、
str = ["<あ>-<#>-<い>--<#>-<1>-<2>-<#>-<x>-<y>"]

という形があるとして、
一番後ろの<#>から後ろ(<x>-<y>)を抜き出すにはどうすればいいですか?


174 :デフォルトの名無しさん:2006/10/25(水) 18:04:57
str[0].rindex(/<#>-/) && $'
str[0].scan(/<.>-<.>/)[-1]
str[0].scan(/<#>-([^#]+)\Z/)[0][0]

175 :173:2006/10/25(水) 18:56:51
>>174
参考になります。
ありがとうございます。

176 :デフォルトの名無しさん :2006/10/26(木) 02:20:08
正規表現と聞いて「性器表現」と連想してしまうのは俺だけ??

177 :デフォルトの名無しさん:2006/10/26(木) 05:32:25
うん

178 :デフォルトの名無しさん:2006/10/26(木) 06:14:22
>>176
心配すんな正常だ

179 :デフォルトの名無しさん :2006/10/26(木) 14:32:10
性器表現・・・どんな演算子があるんだろ。萌

180 :デフォルトの名無しさん:2006/10/26(木) 16:19:38
preg_match("/docomo\.ne\.jp$/",$host)

これでdocomo.ne.jpがひっかからないのですが
どうしてでしょうか?

181 :デフォルトの名無しさん:2006/10/26(木) 16:59:45
マルチウゼェ。

182 :180:2006/10/26(木) 17:01:35
申し訳御座いませんでした。

183 :デフォルトの名無しさん:2006/10/26(木) 17:50:38
>>179
*ってよく使うよ。


   ∧_ ∧
  (´∀` )
    (⊃⌒*⌒⊂)
     /__ノ''''ヽ__)

184 :デフォルトの名無しさん :2006/10/26(木) 23:50:28
>>179
まあ♂♀はあるだろうな。。。

185 :デフォルトの名無しさん:2006/10/27(金) 00:53:54
^[ちま]んこ$

186 :デフォルトの名無しさん:2006/10/30(月) 20:50:52
Perlの掲示板スクリプトでタグが入力されたとき、
<em><q>text</em></q>
のように要素が重なり合ったときにエラーを返すようにしたいんですが、
どうすればいいか教えていただけませんか?

187 : ◆TWARamEjuA :2006/10/30(月) 22:37:59 ?BRZ(6667)
>>186
かーなーりすれ違い♪
HTML-lintに通すと良いかも♪

188 :デフォルトの名無しさん:2006/10/31(火) 19:03:40
"o:\\Desktop\\test\\test1\\ttea\\tarachan.txt"

この形式からtarachan.txtの入っているフォルダ名を得るにはどう記述したら良いのでしょう。

189 :デフォルトの名無しさん:2006/10/31(火) 19:24:27
自己解決しました。
最良かどうかは解りませんが/(^\".*?\\.*?)[^\\]*?\"/で出来ました。

190 :デフォルトの名無しさん:2006/10/31(火) 19:27:55
連投すいません
/(^\".*?)[^\\]*?\"/
でも大丈夫なようですね。

191 :デフォルトの名無しさん:2006/10/31(火) 21:04:11
_splitpath使った方が早いような。

192 :デフォルトの名無しさん:2006/10/31(火) 21:35:23
>>186
念のため聞いておくが、そのような記述が必ずしもHTMLの仕様に逆らってはいないことを知っての上でそうしたいんだな?

193 :デフォルトの名無しさん:2006/11/01(水) 11:06:29
linuxのnmap見たいなツールで、windows用のGUIツールありますか?
テストサーバでオープンになっているポートを知りたいのですが。

194 :nobodyさん:2006/11/01(水) 18:28:29
このような正規表現 [a-zA-Z0-9.]+ で
アルファベットおよびアルファベット+数字で構成された語句を抜き出し
ているのですが、数字だけのものも抜き出してしまいます。
年度など、数字だけで構成されているものを除外するにはどうすればいい
でしょうか?
どうもうまくいかないもので。よろしくお願いします。

195 :デフォルトの名無しさん:2006/11/01(水) 18:32:52
>>194
その正規表現で動いたら奇跡だな。

[a-zA-Z][a-zA-Z0-9.]*

196 :194:2006/11/01(水) 18:49:30
>>195
動いてますよ。文字は全て全角なので。(ちょっとわけありで)
その上で、数字だけを除外するにはどうすれば良いのか、お聞きした
いのです。


197 :デフォルトの名無しさん:2006/11/01(水) 18:51:10
それだと数字から始まるものはマッチしなくね?
[a-zA-Z0-9.]*[a-zA-Z][a-zA-Z0-9.]*
こんなのかな

198 :194:2006/11/01(水) 19:04:08
>>197
それがマッチするんですよ。こんな感じに
Array ( [0] => 2005 [1] => IEEE1394 [2] => 24 [3] => Index
[4] => Java [5] => API [6] => JMF [7] => USB2.0 )
それで、困っておるわけです。

199 :デフォルトの名無しさん:2006/11/01(水) 19:17:50
>>198
>>196で答え出てるよ。

200 :199:2006/11/01(水) 19:18:44
>>195だった・・

201 :デフォルトの名無しさん:2006/11/01(水) 19:21:10
>>199
それの不十分さを>>197が補正してるんだな。

202 :194:2006/11/01(水) 19:25:35
>>200
195,197の正規表現は試してみましたが、動きませんでした。
PHPのなかで使ってるからだろうか・・?

203 :デフォルトの名無しさん:2006/11/01(水) 19:30:22
>>195
お前ら.のエスケープ忘れてる。

204 :194:2006/11/01(水) 19:33:43
>>197
ご無礼をいたしました。普通に動きました。ありがとうございます。

205 :194:2006/11/01(水) 19:42:14
あと、後学のために、[a-zA-Z]と[a-zA-Z0-9.]がくっついた状態は
どんな意味があるのか、教えていただけるとありがたいのですが

206 :デフォルトの名無しさん:2006/11/01(水) 19:44:05
>>205
aa -> aaにマッチ

と同じ

207 :デフォルトの名無しさん:2006/11/02(木) 02:29:58
>>203

[] の中なんだから、エスケープの必要はないっしょ。
世の中には記号類と見ればやたらエスケープしたがる人がいるのはよく見るが。


208 :デフォルトの名無しさん:2006/11/03(金) 00:54:08
文字列から括弧内(とその括弧)を消去する方法で悩んでいます。

$string = "(foo1)bar1 (foo2 bar2(foo3))bar3((foo4) bar4)";
echo preg_replace(pattern, "", $string);

この例で「bar1 bar3」の出力を期待しますが

/\(.+\)/ なら当然何も残りません。非欲張りの /\(.+?\)/ では入れ子の
部分でおかしくなって「bar1 )bar3 bar4)」となります。
どうかお知恵をお貸しください。

209 :デフォルトの名無しさん:2006/11/03(金) 00:57:09
http://capslockabcjp.kitunebi.com/faq.html#htmltag
http://capslockabcjp.kitunebi.com/handmade.html

210 :デフォルトの名無しさん:2006/11/03(金) 09:14:04
$string = "(foo1)bar1 (foo2 bar2(foo3))bar3((foo4) bar4)";
while ($string =~ s/\([^(]*?\)//g) {}
print $string;

211 :208:2006/11/04(土) 12:36:54
レスありがとうございます。
ややこしそうなんで不等号に置換してstrip_tagsします。

212 :デフォルトの名無しさん:2006/11/05(日) 16:58:33
スレを全く読まずに質問

PerlでURLの書式として正しいか、URLとして使用できない文字が含まれていないかをチェックする正規表現教えて
日本語ドメインには対応しなくていいから

213 :デフォルトの名無しさん:2006/11/05(日) 17:10:01
>>212
>>1のリンク先くらい嫁

214 :デフォルトの名無しさん:2006/11/09(木) 09:17:27
正規表現の事が全くわからないので教えてほしいのですが
2ちゃんねるのBEの表記を正規表現で表すとどうなるのでしょうか?

215 :デフォルトの名無しさん:2006/11/11(土) 12:30:37
>214
>1のリンク先くらい嫁

216 :デフォルトの名無しさん:2006/11/11(土) 15:21:58
質問ですが、perlでまちBBSのスレをdat化させたいと思って正規表現でやろうとしたんですが出来ません。
htmltodatに入ってる『m/<dt>([0-9]+).+?(?:"mailto:(.+?)">)?<b> (.*?) </b>.*?投稿日: (.*?)<br><dd> ?(.*)<br><br>/mi』じゃダメなんですか?

217 :デフォルトの名無しさん:2006/11/11(土) 16:12:17
>>216
まちBBSの書式なんか知らん。
befor-afterのサンプルぐらい出せ。

218 :デフォルトの名無しさん:2006/11/12(日) 06:51:19
まちBBSに書き込みしたらIPと住んでる地域バレるじゃん

219 :デフォルトの名無しさん:2006/11/12(日) 07:05:05
東京23区板は出ないよ

220 :216:2006/11/12(日) 09:30:35
befor
『<dt>149 名前:<a href="mailto:sage"><b> 東京都名無区 </B></a> 投稿日: 2006/11/08(水) 10:26:08 ID:4jNjzvOE<br><dd> 白山ラーメンは営業時間がちょっとね。 <br><br>
<dt>150 名前:<font color="#008800"><b> 東京都名無区 </b></font> 投稿日: 2006/11/08(水) 19:20:35 ID:xKWAFsLU<br><dd> じゃあ素材は中国産か・・。 <br><br>』

after
『東京都名無区<>sage<>2006/11/08(水) 10:26:08 ID:4jNjzvOE<>白山ラーメンは営業時間がちょっとね。 <>
東京都名無区<><>2006/11/08(水) 19:20:35 ID:xKWAFsLU<>じゃあ素材は中国産か・・。 <>』
こういう感じにしたいんです。


221 :デフォルトの名無しさん:2006/11/14(火) 16:18:04
同じ文字が3個以上続いている行を表示するにはどうしたらいいですか?

222 :デフォルトの名無しさん:2006/11/14(火) 19:34:53
>>221
grepでピリオドとbackreferenceを使ってちょ。

223 :デフォルトの名無しさん:2006/11/14(火) 19:41:56
/(.)\1\1/

224 :デフォルトの名無しさん:2006/11/15(水) 00:09:45
regular expressionを「正規表現」って訳した奴は氏ね!
どう考えても「規則表現」あたりだろーが。
それに「せいきひょうげん」とか口に出して言うのって
なんか恥ずかしいじゃねーか。

225 :デフォルトの名無しさん:2006/11/15(水) 01:32:30
>>224 どう考えても

考えないで「勉強」してよ。

226 :デフォルトの名無しさん:2006/11/15(水) 22:52:02
共立のエイホウルマン本では「正則表現」と訳されてますがな。

227 :デフォルトの名無しさん:2006/11/15(水) 23:03:25
性器表現((゚)) Ψ

228 :デフォルトの名無しさん:2006/11/16(木) 00:00:14
MacやMACやMaC OSXやmac osXにはヒットしても
macafeeやMacAfeeにはヒットしない正規表現はどう書けばよいのでしょうか。

229 :デフォルトの名無しさん:2006/11/16(木) 00:07:56
/\bmac\b/i

230 :デフォルトの名無しさん:2006/11/16(木) 00:22:07
>>216
とりあえず面白そうなので
http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038588508/
で聞いてみてはどうです?

231 :デフォルトの名無しさん:2006/11/17(金) 16:59:43
>>224
賛同++

232 :デフォルトの名無しさん:2006/11/20(月) 04:23:05
正規表現で置換しまくりんぐフヒヒ

233 :デフォルトの名無しさん:2006/11/20(月) 07:49:26
重くなりそう

234 :デフォルトの名無しさん:2006/11/21(火) 13:00:04
すいません。ちょっと探しても見つからなかったのですが、
[AaAa][IiIi][UuUu]
という正規表現を分解して、マッチする文字列を出してくれるツール、
もしくはC#あたりでそういった方法などは無いでしょうか?

235 :デフォルトの名無しさん:2006/11/21(火) 13:17:55
>>234
*とかあったらどうすんのさ。

本当に正規表現関連の質問なのか?
組み合わせ論の話なんじゃ?

236 :デフォルトの名無しさん:2006/11/21(火) 13:33:47
>>235
*とかはありません。
[Aa]のパターンだけなんですが、如何せん量が多くて
自分で分解して1つ1つ書いていくのは不可能なのです。
何か良い方法は無いか探してるんですが・・・

237 :デフォルトの名無しさん:2006/11/21(火) 13:42:42
正規表現のままでいけない理由は?

238 :デフォルトの名無しさん:2006/11/21(火) 13:58:54
あったけどサイトごと消失

239 :デフォルトの名無しさん:2006/11/21(火) 15:10:31
4進数3桁

240 :234:2006/11/21(火) 17:06:08
>>237
リストを渡す相手が正規表現を知らず、全部並べて書いてくれと言われまして……

241 :デフォルトの名無しさん:2006/11/21(火) 17:07:25 ?2BP(0)
ワロスw

242 :デフォルトの名無しさん:2006/11/21(火) 17:08:07
正規表現を教えた方が早そうだな

243 :デフォルトの名無しさん:2006/11/21(火) 19:22:57
ご愁傷様としか言いようがない。

244 :234:2006/11/21(火) 19:42:25
人生オワタ\(^o^)/

245 :デフォルトの名無しさん:2006/11/21(火) 20:38:55
数式の展開と同様だよね。

Maxima 5.9.1 http://maxima.sourceforge.net
Using Lisp Kyoto Common Lisp GCL 2.6.5 (aka GCL)
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
This is a development version of Maxima. The function bug_report()
provides bug reporting information.
(%i1) expand((a1+a2+a3+a4)*(i1+i2+i3+i4)*(u1+u2+u3+u4));
(%o1) A4 i4 u4 + A3 i4 u4 + A2 i4 u4 + A1 i4 u4 + A4 i3 u4 + A3 i3 u4
+ A2 i3 u4 + A1 i3 u4 + A4 i2 u4 + A3 i2 u4 + A2 i2 u4 + A1 i2 u4 + A4 I1 u4
+ A3 I1 u4 + A2 I1 u4 + A1 I1 u4 + A4 i4 u3 + A3 i4 u3 + A2 i4 u3 + A1 i4 u3
+ A4 i3 u3 + A3 i3 u3 + A2 i3 u3 + A1 i3 u3 + A4 i2 u3 + A3 i2 u3 + A2 i2 u3
+ A1 i2 u3 + A4 I1 u3 + A3 I1 u3 + A2 I1 u3 + A1 I1 u3 + A4 i4 u2 + A3 i4 u2
+ A2 i4 u2 + A1 i4 u2 + A4 i3 u2 + A3 i3 u2 + A2 i3 u2 + A1 i3 u2 + A4 i2 u2
+ A3 i2 u2 + A2 i2 u2 + A1 i2 u2 + A4 I1 u2 + A3 I1 u2 + A2 I1 u2 + A1 I1 u2
+ A4 i4 u1 + A3 i4 u1 + A2 i4 u1 + A1 i4 u1 + A4 i3 u1 + A3 i3 u1 + A2 i3 u1
+ A1 i3 u1 + A4 i2 u1 + A3 i2 u1 + A2 i2 u1 + A1 i2 u1 + A4 I1 u1 + A3 I1 u1
+ A2 I1 u1 + A1 I1 u1
(%i2)

246 :デフォルトの名無しさん:2006/11/21(火) 21:02:47
文字化けしたらすまん。

aa1="A a $(B#A(B $(B#a(B";aa2="I i $(B#I(B $(B#i(B";aa3="U u $(B#U(B $(B#u(B"; for bb1 in $aa1; do for bb2 in $aa2; do for bb3 in $aa3; do echo $bb1$bb2$bb3; done; done; done

247 :デフォルトの名無しさん:2006/11/21(火) 22:37:02
どうでもいいけど、絨毯爆撃テストに頼ってるだけじゃ条件漏れでそのうち嵌るよ。

248 :デフォルトの名無しさん:2006/11/21(火) 22:57:56
>>234
文字の範囲が決まってる(アルファベットだけとか)なら、
全組み合わせのテキストファイル生成して、
エディタで引っ掛けるなりgrepするなりするってのはどう?

249 :デフォルトの名無しさん:2006/11/21(火) 22:59:14
>>248
だからその
>全組み合わせのテキストファイル生成
してくれるツールは無いかって聞いてるんじゃん。

250 :デフォルトの名無しさん:2006/11/21(火) 22:59:39
って、正規表現わからないから、って言われてるのか。

ならやるべきことはリストで出すことじゃなくて、
今の正規表現を図か何かにわかりやすく起こして
説明してわかってもらうことじゃないの?

251 :デフォルトの名無しさん:2006/11/21(火) 23:00:51
>>249
ああ、いや、例えばアルファベット小文字10文字って決まってたら
aaaaaaaaaaからzzzzzzzzzzまで全部テキストファイルに書いて
引っ掛ける、ってな意味。限定されてないと無理だけど。

252 :デフォルトの名無しさん:2006/11/21(火) 23:03:13
>>251
だからその全パターンを正規表現からおこして列挙してくれるツ(ry

253 :デフォルトの名無しさん:2006/11/21(火) 23:08:49
vbs だけど... コマンドプロンプトから cscript xxx.vbs ってやってちょ

--- xxx.vbs
Option Explicit
Dim X
X = "[AaAa][IiIi][UuUu]"
With New RegExp
 .Global = True
 .Pattern = "\[([^\]]*)\]"
 Dim Matches
 Set Matches = .Execute(X)
 Call Foo(Matches, 0, "")
End With

Private Sub Foo(Matches, Level, String)
 If Level < Matches.Count Then
  Dim S
  S = Matches.Item(Level).SubMatches(0)
  Dim I
  For I = 1 To Len(S)
   Call Foo(Matches, Level + 1, String + Mid(S, I, 1))
  Next
 Else
  WScript.StdOut.WriteLine String
 End If
End Sub

254 :デフォルトの名無しさん:2006/11/21(火) 23:37:06
そんなにニーズあるのなら年末にでも開発するけど
ダウンロード一桁とかじゃないだろうな(w

255 :デフォルトの名無しさん:2006/11/22(水) 01:45:28
254氏キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

256 :デフォルトの名無しさん:2006/11/22(水) 13:32:00
頑張ってつくったところで
サイズがでかすぎるテキストファイルになって
重くて相手にされない予感

257 :デフォルトの名無しさん:2006/11/22(水) 15:46:11
[^a]
とか入って来たら死にそうな感じがするが

258 :デフォルトの名無しさん:2006/11/22(水) 17:03:54
死なない。そういうのをちゃんと扱えて
事前に計算量を予測できる、
UTF-8でも大丈夫なアルゴリズムがあるの。

259 :デフォルトの名無しさん:2006/11/22(水) 17:25:31
[01]を100個ぐらい並べただけで相当な数になるわけだが。


260 :デフォルトの名無しさん:2006/11/22(水) 17:40:36
なるけどそれを予測できればいいわけ。
1000超えたら中止とか設定するの。

261 :デフォルトの名無しさん:2006/11/22(水) 20:00:10
>>260
それ、何かの解決策になってる?

262 :デフォルトの名無しさん:2006/11/22(水) 20:38:16
>>260
目的を果たしてないぞw

263 :デフォルトの名無しさん:2006/11/22(水) 22:50:13
それなんて注文の多い料理店。
組み合わせだすなんて不毛なことより
どっちかというと視覚化のほうをやりたい。

264 :デフォルトの名無しさん:2006/11/23(木) 18:38:56
正規表現で結婚相手を見つけるにはどうしたらいいですか?

265 :デフォルトの名無しさん:2006/11/23(木) 20:56:43
*女

266 :デフォルトの名無しさん:2006/11/23(木) 21:50:36
性器表現するにはどうしたらいいですか?

267 :デフォルトの名無しさん:2006/11/23(木) 22:12:11
お?(ちん(ちん|ぽこ?|こ)|(まん|め)こ)




268 :デフォルトの名無しさん:2006/11/23(木) 22:29:56
ぼぼが表現されんようだが

269 :デフォルトの名無しさん:2006/11/23(木) 22:58:24
申し訳ありませんが、方言につきましては別途料金が発生いたします。
よろしいでしょうか?

270 :デフォルトの名無しさん:2006/11/24(金) 02:46:08
OK キャンセル いいから一発やらせろよ

271 :デフォルトの名無しさん:2006/11/24(金) 17:20:28
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< 問題:「同じ数の繰り返しがない数字列すべて」を示す正規表現は?

  (    )  \_____
  | | |
  (__)_)


272 :デフォルトの名無しさん:2006/11/24(金) 17:32:26
そうやって知りたいだけじゃねーか。
ちったぁ自分で考えろや

273 :デフォルトの名無しさん:2006/11/24(金) 19:46:16
同じ数の繰り返しがないって意味わかんない

274 :デフォルトの名無しさん:2006/11/24(金) 19:54:56
grep -v "\(.\)\1"

?

275 :デフォルトの名無しさん:2006/11/24(金) 21:51:15
>>271, >>273
おれは、「すべて」の意味もわかんない

276 :デフォルトの名無しさん:2006/11/25(土) 10:42:10
>>271
>>1

277 :デフォルトの名無しさん:2006/11/25(土) 16:00:53
>>273
同じ数字が隣にこない、と言えばいいだろうか
113はダメ、131はおk

>>275
全部です。数字一個の列も数字百個の列も表現できろってことです。

俺のまわりの連中は馬鹿だから誰もわかりません
勿論俺もわかりません


278 :デフォルトの名無しさん:2006/11/25(土) 16:26:36
(\d)(?!\1)

279 :デフォルトの名無しさん:2006/11/25(土) 16:28:08
ああ、列ってのは連なりってことなのかな。
だとしたらこうか。
((\d)(?!\1))+

280 :デフォルトの名無しさん:2006/11/25(土) 16:32:01
違うわ。こうか。

((\d)(?!\2)){2,}

281 :デフォルトの名無しさん:2006/11/25(土) 20:16:00
>>278
>>280

全然ダメ

>>277
987654321
1
98
988
678678

これはどれがマッチするとか例をかいたら?


282 :デフォルトの名無しさん:2006/11/25(土) 20:26:05
ダメって言うなら正規表現書いてみろ

283 :デフォルトの名無しさん:2006/11/25(土) 21:18:32
これだけ偉そうなんだから、きっとずばっと正解書いてくれるよ

284 :デフォルトの名無しさん:2006/11/25(土) 21:47:19
オライリーの本を読めば正解が分かる
ヒントは
?!

285 :デフォルトの名無しさん:2006/11/25(土) 22:35:06
VBS だが
-----
Option Explicit
Dim X, R
For Each X In Array("1", "113", "131", "987654321", "1", "98", "988", "678678")
  With New RegExp
    .Pattern = "^(?:(\d)(?!\1))*$"
    If .Test(X) Then R = "Match" Else R = "Not Match" End If
    WScript.StdOut.WriteLine X & ": " & R
  End With
Next
-----
1: Match
113: Not Match
131: Match
987654321: Match
1: Match
98: Match
988: Not Match
678678: Match

286 :デフォルトの名無しさん:2006/11/26(日) 05:29:10
>>281
○987654321
○1
○98
×988
○678678

この正規表現を連接・選択・スターだけで書けって言うんだ…
無茶しやがって

287 :デフォルトの名無しさん:2006/11/26(日) 12:05:37
ヒント
同じ数字が連続するのは10種類しかない

288 :デフォルトの名無しさん:2006/11/26(日) 12:52:58
123123もダメな事になりました

289 :デフォルトの名無しさん:2006/11/26(日) 13:43:10
>>286
オライリーの本を読めば正解が分かるな
ヒントは否定先読み

>>1
のリンク先を全て読んでもいいけどな

290 :デフォルトの名無しさん:2006/11/26(日) 14:50:35
ちょっと流れからはずれるんだが、疑問に思ったこと
Perl5など最近の言語処理系がサポートしているいわゆる正規表現が既に
本来の意味での正規表現ではなくなっているというのは有名な話だけど
じゃあ、そのいわゆる正規表現が表現できる言語のクラスってどんなの
なんだろう?色んなところの例を見た限りでは、少なくとも文脈自由言語の
一部を表現できるようだけど

291 :デフォルトの名無しさん:2006/11/26(日) 17:25:55
文脈自由文法は表現できるよ。
だから自然言語処理で、正規表現がよく使われたりする。


292 :デフォルトの名無しさん:2006/11/26(日) 20:03:21
>>291
つまり、「任意の」文脈自由文法をPerl5などで拡張された「いわゆる」正規表現
で表現できるってこと?もしそうだったら、どっかにそれを証明した論文がある
はずなんだけど論文へのポインタか何か知ってたら教えて

293 :デフォルトの名無しさん:2006/12/06(水) 00:55:21
[00:00.00]
[00:08.05]
[00:20.32]
こんなのを
[00:00]
[00:08]
[00:20]
に書き換える正規表現教えてください

294 :デフォルトの名無しさん:2006/12/06(水) 01:28:44
書き換える作業は各自でお願いします。

295 :デフォルトの名無しさん:2006/12/06(水) 03:42:17
s/\(\[.....\)...]/\1]/
s/\(\[[0-9][0-9]:[0-9][0-9]\)\.[0-9][0-9]]/\1]/

296 :293:2006/12/06(水) 17:36:11
>>295
ありがとうございました

297 :デフォルトの名無しさん:2006/12/07(木) 00:53:22
aaabbbccc と bbb を取りたい
括弧の中に括弧っていいんですか?

/(aaa(bbb)ccc)/



298 :デフォルトの名無しさん:2006/12/07(木) 01:26:39
かっこわるいー

299 :デフォルトの名無しさん:2006/12/07(木) 03:42:49
(e)

300 :デフォルトの名無しさん:2006/12/07(木) 03:50:18
>>291
balanced parenthesesは拡張された正規表現でどう書くの?

301 :デフォルトの名無しさん:2006/12/07(木) 09:11:27
>>300
perlの正規表現のマニュアルの (??{ code }) のところにそのものずばりの例がある。

$re = qr{
\(
(?:
(?> [^()]+ )# Non-parens without backtracking
|
(??{ $re })# Group with matching parens
)*
\)
}x;

ttp://perldoc.perl.org/perlre.html

302 :デフォルトの名無しさん:2006/12/07(木) 17:51:10
>>301
\(
(?:
(?> [^()]+ )# Non-parens without backtracking
|
(??{ $re })# Group with matching parens
)*
\)
は(??{ code })でコードが埋め込まれることで言語依存になってしまうが
拡張された正規表現ではある。しかしその外側は正規表現ではないのでは?
単なるperlの文に見えるのだが。

303 :デフォルトの名無しさん:2006/12/08(金) 01:36:15
>>300

こーゆーのもある(,NETね)

Regex re = new Regex(@"^
  (?>
      \( (?<LEVEL>)   # On opening paren push level
    |    
      \) (?<-LEVEL>)  # On closing paren pop level
    |
      (?! \( | \) ) . # Match any char except ( or ) 
  )+
  (?(LEVEL)(?!))      # If level exists then fail
  $", RegexOptions.IgnorePatternWhitespace);


304 :デフォルトの名無しさん:2006/12/08(金) 19:50:29
HTMLを取得してタグをすべて除去するperlスクリプトを書いているんですが、
javascriptだけは残ってしまいます。
正規表現でjavascriptを消去するやり方はないんでしょうか?
色々試してもさっぱりダメ……

305 :デフォルトの名無しさん:2006/12/08(金) 20:46:44
scriptの開始タグ〜終了タグを除去すればいい


306 :デフォルトの名無しさん:2006/12/09(土) 03:54:02
HTMLタグ除去って perldoc 見れば一発だし
行儀よく <!-- hoge --> に囲まれてれば
JavaScript だって一緒に消されるっしょ?

うまいことコメントアウトされてないようなら
先に script 回りだけ同じようにばっさり切ればいいし

307 :デフォルトの名無しさん:2006/12/09(土) 16:17:09
もうだめなんだよ

308 :デフォルトの名無しさん:2006/12/10(日) 11:42:44
>>305
まあ、君の言うことは正しいんだけど、その「終了タグ」を
見つけるのが大変と言うことだ。

文字列やコメント中に </script> とか書いてるのをきちんと
はじくのはちょっと骨が折れる。

309 :デフォルトの名無しさん:2006/12/10(日) 19:35:00
Fx1.5からはE4Xがあるから、粉砕骨折するだろうね。

310 :デフォルトの名無しさん:2006/12/10(日) 19:51:58
亀裂骨折はこの間したけどな
いてえよ

311 :デフォルトの名無しさん:2006/12/14(木) 13:00:06
>>306
それ Unicode で
http://openmya.hacker.jp/hasegawa/public/20061209/momiji.html

xss考慮するとけっこう対応は大変だぞ

312 :デフォルトの名無しさん:2006/12/15(金) 13:57:42
HTMLのタグ除去に似ているのですが今HTMLタグ以外の部分を(.*?)に置き換える正規表現をjavaで考えています.
判りにくいと思いますので例を言うと
<font><a href="(.*?)" target="_blank">Recycled Niceguys</a></font color="red">
<font><a href="(.*?)" target="_blank">(.*?)</a></font color="red">
こんな感じに変換にしたいのです.
今自分で考えたのは
((?:<.*?>)*)(?:.*?)((?:<.*?>)*)
group(1) + "(.*?)" + group(2)
こうなのですがうまく変換できません.
何処が間違っているのでしょうか?
ご教授お願いします.

313 :デフォルトの名無しさん:2006/12/15(金) 17:49:10
タグの定義が分からない
value = ">"
を考慮するかとか書いてないし
よって回答不能

314 :デフォルトの名無しさん:2006/12/15(金) 22:18:33
終了タグに属性書くのはかなりレベル高いボケだなw

315 :デフォルトの名無しさん:2006/12/15(金) 22:24:29
<input name=dir value=">">


316 :デフォルトの名無しさん:2006/12/16(土) 02:22:56
PHPです
URLの test.php?a=123&b=456 から a が欲しいので
/a\=(.+?)\&/
としていたのですが、test.php?a=123 だけで終わる場合があることが分かったのですが、
&または行末としたいのですが、
/a\=(.+?)[\&$]/
では行末の場合ヒットしてくれません
ご教授願えないでしょうか?

317 :デフォルトの名無しさん:2006/12/16(土) 02:33:12
/a\=(.+?)(\&)?/
じゃ駄目なの?

318 :デフォルトの名無しさん:2006/12/16(土) 13:31:22
>>316
/a=([^&]+)/

319 :デフォルトの名無しさん:2006/12/16(土) 13:37:32
>>316
PHPなら
$_GET["a"]
じゃあかんの?

320 :デフォルトの名無しさん:2006/12/18(月) 06:21:34
>>316は恥で狂い死んだらしい

321 :デフォルトの名無しさん:2006/12/20(水) 06:06:00
test

322 :デフォルトの名無しさん:2006/12/25(月) 19:36:44
どなたかご指導お願いします。
Flashで読み込む用に、
kuji=***(ランダムで変わる大吉から凶まで)
という文字列だけを出力するkuji.phpを作りました。

さらに、この***の部分だけをmain.phpに読み込んで
ランダムで変わる部分だけを表示したいのですが、
include('kuji.php');
で読み込んだあと、「kuji=」の部分を削って***だけ表示するには
どのようにすれば良いのでしょうか?PHPのバージョンは4.0.6です。

323 :デフォルトの名無しさん:2006/12/25(月) 20:08:17
それは正規表現使わない方が良いと思うんです。

324 :デフォルトの名無しさん:2006/12/25(月) 22:14:59
正規表現でand検索ってどうやるんだっけ?

「ジョージアのコーヒー」
「コーヒーはジョージア」


「コーヒー」「ジョージア」
だけを使って2文にマッチさせたい。

ジョージア.*コーヒー
だと1文目はヒットするが、2文目はヒットしない。


325 : ◆TWARamEjuA :2006/12/25(月) 22:53:31 ?BRZ(6677)
m#(コーヒー)|(ジョージア)#
ではなくって?釣り?

326 : ◆TWARamEjuA :2006/12/25(月) 22:55:12 ?BRZ(6677)
あらやだ(照)∧||∧

327 :デフォルトの名無しさん:2006/12/25(月) 23:26:43
んーどちらか一方ではなくて、2つの条件を満たしてマッチさせたいわけです。

たとえば
「ジョージアのコーヒー美味しいね。」
「ジョージアよりポッカの方が良い。」
という場合もあった場合に、一つ目だけをマッチさせて、二つ目を省きたいのです。

検索条件のand検索の様な事はできるのかなと思って質問しました。




328 :デフォルトの名無しさん:2006/12/25(月) 23:29:12
という場合もあった場合に、一つ目だけをマッチさせて、二つ目を省きたいのです。

という場合もあった場合に、一文目だけをマッチさせて、二文目を省きたいのです。


329 :デフォルトの名無しさん:2006/12/26(火) 00:12:35
>>327
基本的には組み合わせの数だけorでつなぐ正規表現になると思う
例えばこんな感じで

(ジョージア.*コーヒー|コーヒー.*ジョージア)

330 :デフォルトの名無しさん:2006/12/26(火) 01:21:40
そうですか・・・。
正規表現でスマートに実装できるかなと思ったのですが。
単語が3個4個と増えてくると結構コードが汚くなってきますよね。
とりあえず今は仕様ということで諦めるしかない様ですね。


331 :デフォルトの名無しさん:2006/12/26(火) 02:04:09
名前つきキャプチャとかで、「どれがマッチしたか」が分かる言語なら
325みたくorでマッチさせておいて、その後に「全部マッチしたやつ」を
探せばいいのでは

332 :デフォルトの名無しさん:2006/12/27(水) 02:13:25
(?=.*ジョージア)(?=.*コーヒー).*

333 :デフォルトの名無しさん:2006/12/27(水) 13:37:26
すみません教えて下さい
----
ABCD
こんにちは
こんばんわ
さようなら
EFGH
----
上のABCDとEFGHに挟まれる複数行の文字列を
取得するには、どのような記述にしたら
良いでしょうか?

334 :デフォルトの名無しさん:2006/12/27(水) 15:22:06
http://pc7.2ch.net/test/read.cgi/software/1163847543/155
http://pc8.2ch.net/test/read.cgi/tech/1156413899/333

335 :デフォルトの名無しさん:2006/12/27(水) 16:56:49
>>327
>>1
のリンク先嫁

336 :デフォルトの名無しさん:2006/12/28(木) 12:05:35
SQLの
...where ID like 'EE%' and ID <> 'EEXX'
という条件を正規表現でやろうと思います。

エディタの正規表現検索で確認した感じだと「^(?!EEXX)EE.*$」でいけそうなんですけど、
大丈夫でしょうか?


337 :デフォルトの名無しさん:2006/12/28(木) 15:36:43
>>332
これでいいんだ...。orz

どうも肯定先読みの説明ってどこ見ても意味がとりにくい。

どっかにすっきりした解説がないもんだろうか。

338 :デフォルトの名無しさん:2006/12/28(木) 23:20:02
こんばんは。
掲示板の本文欄の書き込みでの質問です。

<a href=http://www.example.com>ホゲ</a> または
<a href="http://www.example.com">ホゲ</a> から、正規表現を使って、

ホゲ の文字をリンク状態にしてページに表示させたいのですが、
どのようにしたら良いのでしょうか?
お願いします。教えてください。


339 :デフォルトの名無しさん:2006/12/28(木) 23:40:12
意味不明。
><a href=http://www.example.com>ホゲ</a>
この時点で既にリンクされてるじゃん。

340 :デフォルトの名無しさん:2006/12/28(木) 23:49:07
>>339
”ホ”の前に”>”を入れたいんじゃないのかな?

341 :デフォルトの名無しさん:2006/12/29(金) 00:22:46
>>340
それもまた意味不明

342 :デフォルトの名無しさん:2006/12/29(金) 01:46:58
理由は不明ですが、解決しました。ありがとうございました。

343 :デフォルトの名無しさん:2006/12/29(金) 04:03:33
これは裏政府の暗号に違いないっ!

344 :デフォルトの名無しさん:2006/12/29(金) 22:16:14
秀丸の正規表現なんですが
hogehoge::と書いた時に「::」より前だけヒットさせる正規表現は.*(?=::)と
書いてうまくいっていますが、↑と別に
hogehoge:だけヒットさせるには何と書けばいいのでしょうか?
一応.*(?=:{1})で試したらhogehoge::にも引っかかってしまいますた


345 :デフォルトの名無しさん:2006/12/29(金) 23:58:55
>>344
hogehoge: は引っ掛けたいけど hogehoge:: ははじけばいいの?
hogehoge(?=:[^:])
でどう?



346 :デフォルトの名無しさん:2006/12/30(土) 00:00:51
>>337
そんなにわかりづらいか?
マッチを試みてその結果はあとに影響するけど、注目位置は変えないって
ことだけだと思うんだけど。


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

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)