[過去ログ] Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
362: 2017/12/02(土)09:41 ID:mi+Z/zsa(1) AAS
>>360
横槍だけど358は最初に与えられた条件(3回出現)と違って3回“連続”出現だから留意してね
そして\wは\d_を含んでいるからまだ冗長だ、ついでに+?の?も{3,}の,もシンプルじゃないね
最初の質問の=を:にするだけでよかったと思うよ
^(?>.*?@uvy-xyz\.com){3}
363: 2017/12/02(土)10:25 ID:hDsQS9Tu(1) AAS
依頼者が充足宣言してるのにね
364: 2017/12/02(土)10:49 ID:SQFbqxvb(1) AAS
正規表現の難しいところは引き際。いろんな意味で。
365: 2017/12/02(土)20:04 ID:aLfswfyL(1) AAS
質問がメインのスレじゃないんだから、
探究することは悪いことじゃないよ。
366: 2017/12/02(土)20:22 ID:P9eUjlcX(1) AAS
なにいってんだこいつ?
1
> 質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。
2 質問テンプレ
367: 2017/12/02(土)20:32 ID:+fOAFawt(1) AAS
> 質問する場合は
 ̄ ̄ ̄ ̄ ̄ ̄
368: 2017/12/02(土)22:11 ID:oKFwf0E4(1) AAS
ほとんど質問がルートのレスツリーばかり
テンプレも質問がらみばかり
引き際誤るとここまで人はみっともなくなれるのか
369: 2017/12/02(土)22:44 ID:1qjImk2p(1) AAS
自己紹介乙
370: 2017/12/02(土)23:58 ID:NhirO4Ud(1) AAS
引き際重要
371: 2017/12/10(日)08:22 ID:DxswVEqC(1/2) AAS
Google Apps Scriptで、下記の時系列データを配列で取得したいのだけど、どうしたら良いですか?
外部リンク[do]:www.morningstar.co.jp
372: 2017/12/10(日)17:27 ID:UOQUQi73(1) AAS
どこまでやりましたか
373(1): 2017/12/10(日)18:40 ID:DxswVEqC(2/2) AAS
あとは正規表現のとこだけです。
<tr>
<td class="center">12/08</td>
<td class="center">169</td>
<td class="center">17</td>
<td class="center"> </td>
<td class="center">26</td>
</tr>
374: 2017/12/11(月)00:06 ID:4q7JrCp0(1) AAS
jQuery のセレクターを使え
$('td.center').text()
375(1): 2017/12/11(月)01:01 ID:06if4WxO(1) AAS
>>373
正規表現よりHTMLパーサ使えってのは>>373に同意するがjQueryは外部HTMLをパース/操作するものではない
外部リンク:sites.google.com
この辺参考にするのがいいんじゃない
376: 2017/12/11(月)07:53 ID:HLwn5MaC(1/2) AAS
急にHTMLパーサなんて言われてもチンプンカンプンやわ
377: 2017/12/11(月)09:34 ID:78kXJ+6a(1) AAS
すぐできるだろうと思って泥沼にハマることが多いわ、こりだすとキリがないわで、あきらめどころが難しいのが正規表現。
自分の中で制限時間(10分など。忙しさによる)を設けて、
それ以上時間がかかる場合は正規表現による解決するのをあきらめるってのが、運用上は合理的だろうね。
正規表現そのものの学習・調査をしたい場合は、もちろん違うが。
このスレの客層はどっちなのってことなのかな。
378: 2017/12/11(月)14:24 ID:HLwn5MaC(2/2) AAS
jQueryやらHTMLパーサやら能書きばっかり
正規表現で出来たから、もうええわ
379: 2017/12/12(火)00:30 ID:u8BojTW8(1) AAS
>>375
>jQueryは外部HTMLをパース/操作するものではない
なんでよ?
380: 2017/12/14(木)17:08 ID:lv6L9acp(1/2) AAS
Perl互換ですが,
ファイルの先頭から末尾までをマッチさせる,つまりファイルのテキストを全部取得するにはどう書いたらいいのでしょうか?
381: 2017/12/14(木)17:36 ID:lv6L9acp(2/2) AAS
解決しました
([\s\S]*)で出来ました.
382: 2017/12/16(土)03:31 ID:ArLhqftT(1) AAS
正規表現は構文解析器(parser)じゃないから、
XML, HTML のように、文書に構造があるものは解析できない。バグる
例えば、コメント部に、
<td
と書かれていても、正規表現では該当してしまう
それに要素間に、祖先・子孫などの関係があって、入れ子構造になるから、
開始・終了タグが一致しない
383: 2017/12/18(月)22:01 ID:fLY/8wUq(1) AAS
バックスラッシュt、でいいやろ
384: 2017/12/18(月)23:20 ID:LMSHu3dl(1) AAS
正規表現でできることできないことの見極めが難しい。
うまくできない原因が、自分の未熟によるものか、そもそも誰がやろうが無理なのか、という見極め。
これは正規表現に限った話でないが、正規表現を使っていると遭遇することが非常に多い。
385: 2017/12/18(月)23:31 ID:Xb/4cQMD(1) AAS
自分が使ってる範囲で使えるものか完璧を目指すかで違ってくるよ
386: 2017/12/25(月)17:59 ID:9hKP95Nk(1/2) AAS
もはや姓のサイトウ(斉藤、齊藤など)に適した検索方法って正規表現ぐらいじゃね?
プレス発表 「文字情報基盤整備事業」で推進していた漢字6万文字の国際規格化が完了:IPA 独立行政法人 情報処理推進機構
外部リンク[html]:www.ipa.go.jp
387: 2017/12/25(月)18:01 ID:9hKP95Nk(2/2) AAS
というか外字だとマルチプラットホーム対応した検索アルゴリズムを作ることが困難だったので、国際規格化されただけまだマシか。
388: 2017/12/25(月)22:40 ID:8yZmKHLj(1) AAS
ユニコードなので特に何かに限定されない
ZWSPやZWJなどの方が地獄
外部リンク[html]:anti.rosx.net
389: 2018/01/02(火)13:30 ID:bFwGimBi(1/2) AAS
新年おめでとうございます
スマホアプリで正規表現を使いたくて調べたレベルで恐縮です
'\s'は空白文字だそうですが半角スペースのみを表現できないでしょうか?
また'/'を用いて半角スペースを表す方法はありませんでしょうか?
宜しくお願い致します
390(1): 2018/01/02(火)19:00 ID:I9szCE3x(1) AAS
何故その程度ググらない?
半角スペースはそのまま半角スペースだ
391: 2018/01/02(火)20:13 ID:bFwGimBi(2/2) AAS
>>390
半角文字ばかり調べて盲点でした
ありがとうございました
392(1): 2018/01/06(土)20:03 ID:eEPcZWZO(1/3) AAS
社外に情報を持ち出せず脳内再生ですみませんが、
以下の抽出条件を教えてください
●Regular Expressionの使用環境
Excel/VBAの参照設定で5.5
C#からのソースを移植中に、
Executeメソッドで(おそらく後読みができず)エラーとなっているが、
正規表現初心者で手も足も出ず…
●検索か置換か?
検索
●説明
省11
393: 2018/01/06(土)20:08 ID:eEPcZWZO(2/3) AAS
●対象データ
△△hostname:△hogehoge.com改行
△△△△hostname:△mogemoge.com改行
△hostname:△192.168.1.1改行
のようにスペースが入っています。
Janeでカキコするとスペースが消えたので補足します。
394(1): 2018/01/06(土)21:13 ID:RuMnMvof(1/2) AAS
ホスト名の条件が分からんからドメイン名と同等と仮定する
マルチラインモードで
^\s*(?:[A-Za-z](?:[A-Za-z0-9\-]{0,61}[A-Za-z0-9])?\.)*[A-Za-z](?:[A-Za-z0-9\-]{0,61}[A-Za-z0-9])?:[^\S\x0A\x0D]*((?:[A-Za-z](?:[A-Za-z0-9\-]{0,61}[A-Za-z0-9])?\.)*[A-Za-z](?:[A-Za-z0-9\-]{0,61}[A-Za-z0-9])?)$
としてグループ1のキャプチャを見る, とか
つうかVBAなら正規表現で頑張るより改行文字と:でそれぞれsplitしてループ回しながらtrimするのが自然だと思うけど
395: 2018/01/06(土)22:13 ID:eEPcZWZO(3/3) AAS
>>394
なるほど、hostnameを検索して後読みするのではなく、
ドメインで合致させつつ、IPアドレスを除外するというわけですね。
理解のために改行してみました。
^\s*
(?:[A-Za-z](?:[A-Za-z0-9\-]{0,61}[A-Za-z0-9])?\.)*[A-Za-z](?:[A-Za-z0-9\-]{0,61}[A-Za-z0-9])
?:[^\S\x0A\x0D]
*(
(?:[A-Za-z](?:[A-Za-z0-9\-]{0,61}[A-Za-z0-9])?\.)*[A-Za-z](?:[A-Za-z0-9\-]{0,61}[A-Za-z0-9])
?)$
省9
396(1): 2018/01/06(土)22:25 ID:RuMnMvof(2/2) AAS
> がIPアドレス除外ですね
違う
\Sは空白文字以外だから[^\S\x0A\x0D]は空白文字以外とCR, LFの「何れでもない」場合, つまり空白文字からCRとLFを除外したもの
そもそも(先頭が英字でなければならない)ドメイン名でマッチングしてるんだから先頭が数字で始まるIPアドレスを後から除外する必要はない
再利用性に関しても, 後読み出来るエンジンかそうでないかで既に失われてるんじゃないかね
キャプチャの取得方法なんぞ言語ごとに大分違うしな
仕事で使うなら尚更メンテし辛い上に遅い正規表現を使わにゃならん積極的理由は無い
splitでループ回せば入力のサイズに対して線型時間で終わることが保証される上に保守性も高い
397(1): 2018/01/07(日)12:17 ID:ln22xrzP(1) AAS
>>392
ここでドメイン名文字種チェックせにゃならんの
IPアドレスではないで判断でけんの
398(2): 2018/01/10(水)23:41 ID:qa5Jh8Cf(1) AAS
>>397
現仕様だとまさにIP除外なんだけど、123.comとかが入ってくるので、あとで除外しているという。。
>>396
今日、やっと開発場所で試しました。
ドメインは見事マッチしました!が、
△△domain:△hogehoge.com改行
の行までマッチしてしまうので、
^\s*
(?:[A-Za-z]〜
のところを
省4
399: 2018/01/11(木)10:30 ID:Xo4biI2J(1) AAS
^[△]*hostname:[△]*([0-9.]*[A-Za-z\-][0-9A-Za-z.\-]*)$
^[△]*hostname:[△]*([0-9.]*[^\s0-9.]\S*)$
hostname:△mevius.5ch.net
hostname:△86886.jp
hostname:△日本語.jp
hostname:△はじめよう.みんな
400: 2018/01/11(木)12:30 ID:/99JjIqr(1/2) AAS
>>398
要件は満たしたつもりだが, その行がマッチしちゃならん理由は?
それともキャプチャの意味が分かってないのか?
401: 2018/01/11(木)13:56 ID:/99JjIqr(2/2) AAS
>>398
あと申し訳ないけど, 正規表現を全く理解してないよね?
何でその書き換えで除外出来たと思ったのか教えてくれる?
402: 2018/01/11(木)17:51 ID:WzsJRajU(1) AAS
あぁ, hostnameは固定文字列なのか
なら
^\s*hostname:[^\S\x0A\x0D]*((?:[A-Za-z](?:[A-Za-z0-9\-]{0,61}[A-Za-z0-9])?\.)*[A-Za-z](?:[A-Za-z0-9\-]{0,61}[A-Za-z0-9])?)$
だけど
403(2): 2018/01/16(火)12:15 ID:RA24ssqp(1/2) AAS
正規表現の書き方教えてください。
CentOS 7のサーバーにURLを要求した際、下記のような余計な文字が付きます。付くことがあります。
/ディレクトリ/ファイル名.拡張子%01
/ディレクトリ/desktop.inib%01
/ディレクトリ/desktop.inie%01
またファイル名の後に、
%EE%81%9F%E2%81%80%EE%81%97%C9%84とか
%E6%89%B8%E7%A8%B7%E4%99%BA%E5%A5%97%E3%8D%95%E4%BD%8C%E6%A1%B2%01とか
ファイル名の語尾に不特定の文字が勝手に付く場合もあります。
ディレクトリを要求したときも
省4
404: 2018/01/16(火)13:31 ID:y9BMfGeo(1/3) AAS
外部リンク:social.technet.microsoft.com
コレか?
URLエンコード文字だけなら簡単だがASCIIが入るとなると容易ではない(どこまでがファイル名か判別出来ない)
クライアント側のアップデートを待つ方が賢明な気がする
405: 2018/01/16(火)13:45 ID:y9BMfGeo(2/3) AAS
あと忘れてたけどWebDAVならクライアントにWinSCP使うとか
406: 403 2018/01/16(火)14:48 ID:RA24ssqp(2/2) AAS
ありがとうございます。
自分の場合「空」にはなってませんが似てますね。
便利なクライアントアプリケーション探してみます。
407: 2018/01/16(火)17:00 ID:1yOH1J8J(1/3) AAS
pattern = /^(.*)(?!%)/
p pattern.match('abc%123')
Ruby で否定先読みを使ったら、「abc」だけ取れない。
すべての文字列にマッチしてしまう
なんでやねんw
408: 2018/01/16(火)17:14 ID:G8V+pnDB(1) AAS
なんでやもなにも、.* だから全体にマッチするよ。1文字ごとにチェックするか、文字クラスを使いなさい。
409(1): 2018/01/16(火)18:31 ID:1yOH1J8J(2/3) AAS
Ruby では、先頭から、% を探して、それ以降を削除する
str = '/dir/desktop.inib%01%EE%81'
pos = str.index('%')
if pos
str = str.slice(0...pos)
end
puts str
結果
/dir/desktop.inib
410: 409 2018/01/16(火)19:25 ID:1yOH1J8J(3/3) AAS
正規表現でも、できた。
Ruby では、先頭から、% 以外の文字を探す
pattern = /^[^%]+/
str = '/dir/desktop.inib%01%EE%81'
puts pattern.match str
結果
/dir/desktop.inib
411: 2018/01/16(火)20:18 ID:y9BMfGeo(3/3) AAS
要件には書いてないけど, .iniまでが正しいファイル名だと思うよ
その後ろのbとかeもゴミ
412(1): 2018/01/16(火)22:39 ID:9E60uHWe(1) AAS
どういう法則性でb,eが付いたのかがわからないと、
b,eの他にも付くのがあるのか、また付かないこともあるのかもわからん
例えば、hoge.exee%01とかになるのか?
413(1): 403 2018/01/17(水)15:18 ID:BVJUZk9+(1/2) AAS
皆さんありがとうございます。
>>412
それ以外にも幾つか変な文字の時もあり、
問題なく何も付かない時もあります。
決まったパターンは無いと思った方が良いですね。
すべてが1byte文字の時は
414: 413 2018/01/17(水)17:17 ID:BVJUZk9+(2/2) AAS
最後に変な文章を残してしまいました。
すべてが1byte文字を要求するときは、
そんな変なゴミは付きにくいと書こうと思ったのですが、
まだ確証が無いので無視して結構です。
415: 2018/02/07(水)23:42 ID:3vNjEx0B(1) AAS
●Regular Expressionの使用環境
桜エディタ(テキストエディタ)
●検索か置換か?
置き換え
●説明
文字数、文字種はいろいろです。ただしすべて半角(1バイト文字)です。
結果として、<>内の文字だけにできればどんな方法でも構いません
必要な情報かわかりませんが、<>の外には、<>があることはありません。
asqa>w3e<a>s98<as897kja> ←こんな感じの行はありません。
行末は必ず、>で終わり、必要な文字は必ず<>でくくられたものの中にあります。
省10
416(1): 2018/02/08(木)00:23 ID:kN+YdVUy(1/2) AAS
^[^<>]*<([^<>]+)>$
$1
417: 2018/02/08(木)23:06 ID:VxK8nSc/(1) AAS
[^<>^] サンクス
418: 2018/02/08(木)23:24 ID:Zisu4Ynz(1) AAS
>>416
ありがとうございます。うまく抽出できました。
419: 2018/02/08(木)23:37 ID:kN+YdVUy(2/2) AAS
このぐらいの正規表現なら基本だし, 覚えると正規表現の載ってるエディタでの編集が楽になるよ
とりあえずPerl互換を勉強してみるといい
420(3): 2018/02/14(水)13:35 ID:2LP2x+pK(1) AAS
C#なんですが
[ああ]おおおおお
[いいい]こここここ
[うう][ええ]そそそそそ
ととととと[たた]
↓
おおおおお
こここここ
そそそそそ
ととととと[たた]
省2
421(4): 2018/02/16(金)13:56 ID:uX7uVTrc(1) AAS
\[[^\]]*?\](?!$)
ところによっては\[[^\]]*?\](?!(?:\n|$))
422(1): 2018/02/16(金)14:10 ID:ga78Zu+3(1) AAS
マルチラインモード
^(?:\[([^\[\]])\1*\])+
マッチ部分を除去
423: 420 2018/02/16(金)14:11 ID:CWd36B/o(1/3) AAS
1行目でバッチリ
感動しました!!!
424(1): 2018/02/16(金)14:15 ID:CPKH/1dQ(1/2) AAS
それ文末以外消えるけどええのん
425(2): 421 2018/02/16(金)15:30 ID:mPXTHkFg(1/2) AAS
>>424
文中は消えていいんじゃない?
>>420に
> [うう][ええ]そそそそそ
> そそそそそ
ってあるし
あ、
> ※先頭じゃない文中の[はは]は残したい
この[はは]はマッチしたらダメなのか
これ例の中においてくんないかなー
省14
426: 421 2018/02/16(金)15:30 ID:mPXTHkFg(2/2) AAS
>>425
[たた]ななはは[まま]やや
の[まま]を含めずマッチしたい([たた])ならかなり複雑になりそうでちょっといますぐは思いつかないや
それってつまり
行頭[
行頭から括弧が繋がり、且つ、行末]を含めない範囲
なら
[たた][なな][はは][まま][やや]
のマッチが
→[たた][なな][はは][まま]
省1
427: 2018/02/16(金)15:55 ID:CPKH/1dQ(2/2) AAS
>>425
カッコ内も同じ文字が重なるように読めるしなー
まぁこういう仕様をちゃんと書けるならそもそも正規表現で困らんのだろうけど
428: 2018/02/16(金)15:57 ID:CWd36B/o(2/3) AAS
orz...
試したら確かに
>>422 だと先頭が残りますネ
429(2): 2018/02/16(金)16:00 ID:CWd36B/o(3/3) AAS
AA省
430(1): 421 2018/02/16(金)16:24 ID:rLsYeXBU(1/2) AAS
>>429
[たた]ななはは[まま]やや
は?
[たた][なな][はは][まま][やや]
はどーなんの?
[あいう[かきく]たちつ]
[あいう[かきく]]たちつ
とか括弧内包の場合どーなんのとかも
あと行末も係わるんだから、例の同じ行に余計な文字列入れないで(たぶんこの件では大過ないと思うけど)
431: 421 2018/02/16(金)16:25 ID:rLsYeXBU(2/2) AAS
>>430
内包無視するとしたら
(?<=^)(?:\[[^\[]*?\])+(?!$)
ところによって(?<=(?:^|\n))(?:\[[^\[]*?\])+(?!(?:\n|$))
かね
>>429を満たし、
[たた]ななはは[まま]やや
→[たた]
[たた][なな][はは][まま][やや]
→[たた][なな][はは][まま]
省6
432: 2018/02/16(金)16:26 ID:dBpGhFbZ(1/2) AAS
仕様に不備があると作る方は大変だな
433(3): 2018/02/16(金)17:00 ID:Q4bZpk0j(1/2) AAS
正規表現の使いどころってどんなところですかね?
普通レベルのプログラマから見ると可読性低くて保守性も悪い気がする
タグの要素を最初にバッと配列に入れやすいとか?
434(1): 2018/02/16(金)17:11 ID:GgVv8IsN(1/2) AAS
>>433
可読性低くて保守性も悪いっていうのは本当にその通り
プログラミングで使うならまずは(正規表現が非常に直感的でない限りは)正規表現以外の選択肢を考えるべきで, それが可読性や保守性を上げないとなった上で正規表現が選択されるのがよい
勿論保守性や可読性を気にしないワンライナーとかであれば気にする必要はないが
あとはエディタやgrepなんかだと他に有力な選択肢がないから正規表現になる
435(1): 2018/02/16(金)17:18 ID:h4N2NTdR(1) AAS
単純に、
(?m)^\[.*\](.*)
じゃだめなん?
436(1): 2018/02/16(金)17:23 ID:GgVv8IsN(2/2) AAS
>>435
全然ダメ
入力が
[abc]def[ghi]
なら全文がマッチする(量化指定子*はgreedyだから末尾手前まで全部食う)
437(1): 2018/02/16(金)17:34 ID:dBpGhFbZ(2/2) AAS
>>433
実行環境によってだけどコンパイルされて速くなったりするので
さくっと一行で書けるならメリットはあるよ
プログラム書いた方が良い場合もある
ケースバイケース
438: 2018/02/16(金)18:30 ID:Q4bZpk0j(2/2) AAS
>>434
>>437
レスサンクスコ
今Pythonで作られているパッケージを保守してるんだけど、お約束のように最初に正規表現で抜いて後で編集してる
最初のパフォーマンスを考慮してるのかもだけど、読みにくくて一般人にはいいことないよ
439: 2018/02/16(金)19:13 ID:M8XJLm2H(1) AAS
>>433
ワンライナーで可読性保守性とか気にしない
ストリームエディタで検索、ログの抽出が最たる用途じゃないか
440: 2018/02/16(金)20:46 ID:d9VDf+sb(1) AAS
>>420
$# 「行頭部分にある 1 個以上の \[[^\]*\] を削除」と初見で思ったのだが、違うのか?
$# それとも C# でどうやるかわからないという話? 申し訳ないが C# は知らない。
$
$cat a_in
[ああ]おおおおお
[いいい]こここここ
[うう][ええ]そそそそそ
ととととと[たた]
[ええ]あああ[いい]うう
省13
441(1): 2018/02/16(金)21:24 ID:nYHQACKk(1) AAS
>>436
Non-greedy(最短)なマッチ使えばいいだけじゃね?
使えない環境なの?
442: 2018/02/17(土)05:30 ID:xZfN9pA3(1) AAS
何を望んでいるのかを明確にする方が先かと……
443: 2018/02/17(土)11:13 ID:sN1lrGX4(1) AAS
>>441
none-greedyじゃ先頭しかマッチしない
[abc][def]ghi
の[abc]しか除去出来ない
反復適用すればいいというならその通りではあるが
444(1): 2018/02/17(土)11:27 ID:IU1gsQgu(1/4) AAS
[ab][cd][ef]ああ
これは、繰り返しが入っている。
N回削除する必要がある
[ab][cd][ef]ああ
[cd][ef]ああ
[ef]ああ
ああ
[〜] でグループ化すべき
445: 2018/02/17(土)12:22 ID:IU1gsQgu(2/4) AAS
/^\[[^\]]*\]/ =~ "[ab][cd]ああ"
$& #=> [ab]
Ruby で書いた。
行頭が\[ で、\[ 以外の文字が、0以上続いて、\] がある
446: 2018/02/17(土)12:32 ID:IU1gsQgu(3/4) AAS
/^\[[^\]]*\]/ =~ "[ab][cd]ああ"
$& #=> [ab]
$' #=> [cd]ああ
/^\[[^\]]*\]/ =~ $'
$& #=> [cd]
$' #=> ああ
/^\[[^\]]*\]/ =~ $'
#=> nil
Ruby で書いた。
行頭が\[ で、\[ 以外の文字が、0以上続いて、\] がある
省2
447: 2018/02/17(土)12:42 ID:IU1gsQgu(4/4) AAS
/^(\[[^\]]*\])+/ =~ "[ab][cd]ああ[ef]"
$& #=> [ab][cd]
やったー。Ruby で出来た
\[ があり、\[ 以外の文字が、0以上続いて、\] がある。
これをグループ化して、1回以上繰り返す
ただし、グループ外に、先頭からを指定する
448: 2018/02/18(日)07:04 ID:4dAbe4pu(1) AAS
正規表現で使用される記号があるとワケわからなくなってくるから
適当な記号、例えばQなどに置き換えて試行錯誤して最後に元の記号に戻したりする
449: 2018/02/18(日)11:53 ID:QWcmX5lk(1) AAS
余計なバックトラックを防ぐために
$s = qr/(?>\s*)/
ってやってパターンに埋め込むことならある。
450(1): 2018/02/23(金)22:29 ID:vtIXFjR6(1) AAS
(?s:^(?=.*ス)(?=.*プ))
CHmateで使う正規表現らしいんだけど最初の
(?s:"
の意味が検索してもわからないのですが教えていただけないでしょうか
451(1): 2018/02/23(金)22:45 ID:0zsudQHR(1) AAS
>>450
シングルラインモード
>>348
452: 2018/02/24(土)00:35 ID:bvxyjlLF(1) AAS
>>451
ありがとございます
確認してなんとなく分かりました
ところでこの正規表現の場合(?s:)って名前には改行はないので不要じゃないかと思ってしまうのですがどういう目的で使われているのでしょうか
453: 2018/02/24(土)01:37 ID:d6NztqhC(1) AAS
書いたヤツの趣味じゃ?
しかもかなりてきとう
ワッチョイ名前ならおそらくドコモ判別?でもプだけではない2chスレ:mango
先読みなんてコストかけなくてもKOROKORO AAはSd固定
改行を無理矢理入れ込んでというシチュエーションでスとプでねらい打ちも違和感
本文で^(?=.*A)の類を使うとレス数後半のコストはかなりのもの
これは名前だから大したことにはならないけど
深謀遠慮があるのかも知れんがそれこそ書いた本人へ
454(1): 2018/02/27(火)15:54 ID:2v1tH105(1) AAS
C#で、
var rgx = new Regex("(.)+");
var str = "こんにちは。";
Console.WriteLine(rgx.Replace(str, "$1"));
とすると「。」が出力されるのですが、なぜですか?
$1は「。」になるのですか?「こ」だと思ったのですが、違いますか?
455(2): 2018/02/27(火)16:08 ID:u9k8VAiO(1/2) AAS
>>454
理由はここ読んで
外部リンク[html]:www.regular-expressions.info
短い説明は↓ここでも出てくる
外部リンク:regex101.com
456: 2018/02/27(火)17:03 ID:VEiALCIH(1) AAS
どれどれ…
javascript
'こんにちは。'.replace(/(.)+/, '$1');
=> "。"
ほんまや!知らんかった
457(1): 2018/02/27(火)19:34 ID:LuvO3mbW(1) AAS
>>455
配列に入れてくれればいいのに
って思ったことあるわ
458: 2018/02/27(火)21:09 ID:PLAOSS1/(1) AAS
Ruby でも、
'こんにちは。'.gsub(/(.)+/, $1)
#=> "。"
459: 2018/02/27(火)22:02 ID:u9k8VAiO(2/2) AAS
>>457
.NETはCaptureCollectionってのに入れてくれるみたいよ
ただフルマッチとキャプチャリンググループと両方1度に必要なければ
/(.){1}/みたいに正規表現変えれば配列に入れられるよね
460(1): 2018/02/28(水)21:03 ID:V9ixSdqS(1) AAS
>>455
すみません。
教えて頂いたサイトを見ても分かりません。
簡単に解説をお願いしたいのですが。
461: 2018/02/28(水)22:05 ID:pxJOkH76(1) AAS
単純に最後にマッチした部分ってことじゃないかな。赤ラクダにそう書いてある。
C# は知らない。誰か翻訳してあげて。
上下前次1-新書関写板覧索設栞歴
あと 541 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.028s