正規表現
レス数が900を超えています。1000を超えると表示できなくなるよ。
出発点になるテキストが規則的であればあるほど作業が楽になる。 sedスレで聞いてないね。perlやawkなど、どこか他で見た? ってか、本人どうしたの? いろいろ研究中ですが、釣りじゃありませんw
他のスレにまで投稿すると、マルチで蹴られてしまうからです。 マルチは同じ話題が並行して進行するのが問題。
ちゃんと移動すればマルチじゃないよ。 以下のような文章があったとします。
〜aaa〜bbbaaa〜bbbaaa〜bbb〜
(〜は文字数の定まっていない文字列を表しています。)
ここから、それぞれ最初のaaa〜bbbだけを抽出、真ん中のaaa〜bbbだけを抽出、最後のaaa〜bbbだけをで抽出したい時、どう正規表現で表せばよいのでしょうか? 「aaa」と「bbb」を例えば「【」「】」に置き換えてみると楽かも。
【があって、】以外のものがあるかないかして、】があったとき
が検索パターンってことになるよね。ここまでが正規表現。
その後は、1回目にマッチしたときだけ吐き出す、最後にマッチしたものだけ……
は、何を使うかで変わってくる。 >>816
「【」「】」に置き換えるんじゃなく、「aaa」と「bbb」の例でお願いします。
「【」「】」みたいな1文字じゃなく、「aaa」「bbb」みたいな複数文字なので。
しかも、「aaa」と「bbb」の間に普通の文字としてa bもあります。 こんな感じかな?
aaa[^b]*\(b\{0,2\}[^b]\+\)*b\{0,2\}bbb >>824
おお、なるほど。
そんなところにも正規表現スレあったのか。 こっちの見て書いたんだろ。
別人だとしてもマルチと変わらんな。 というよりシェルのが大元なのか。まあ、移動すると書いてあるからいいか。 > シェルスクリプトスレより誘導されてきました
って書いてあんじゃん。ってかなんでこっちのスレで話を続けてるのかがわからん。
マルチうざい放置でスルーしよ どっちが偽物とか関係なく、向こうの正規表現スレだけで進行させときゃ済む話だしな すみません
(1)
(2)
(30)
(50)
(123)
(256)
こんな感じのデータを
(001)
(002)
(030)
(050)
(123)
(256)
こんな感じで変換するのはどうしたらいいんでしょうか? sed -e 's/(\([0-9]\))/(00\1)/' -e 's/(\([0-9][0-9]\))/(0\1)/' >>835
うまくいきましたありがとうございました。"-e"でスクリプトを2つ記述すればよかったんですね
なんか頭が固くて思いつきませんでした…。助かりました。 >>834, >>836-837
二度とこのスレに来るな。(俺が>>835でないのは命を懸けて誓う) このスレに来るな。(キリッ
命を懸けて誓う(キリッ
2ちゃん初めてか? 肩の力抜けよ。 質問です
正規表現使うとだーって英文テキストの変換が出来るじゃないですか
そこで各英単語の頭文字のみをわーって大文字に変換したいんです
出来ますの?勿論ググりましたが、当方馬鹿なのでわかりません
サルでも分かるような回答を強く期待します
僕はこういう小バカにしたような書き方しか出来ませんが、凄く切実に知りたいです
さぁどうぞ↓ >>844
引用符の中の単語はどう扱いますか?
``internationalization'' 等の長い単語が改行処理で ``-'' を使用して
分割された場合はどう扱いますか?
などなど, 例外事項が多々発生します.
すべての例外事項を網羅した上で, 各条件の対応方法を明記した上で
再質問したください. >>844 だけで答えられる方によるサルでも分かるような回答を強く期待します
さぁどうぞ↓ こいつネタであちこちに書いてるやつだから
まともに相手してもムダだよ。 >>844
> 正規表現使うとだーって英文テキストの変換が出来るじゃないですか
いや? 大抵のアプリケーションにはデフォルトで付いてる機能だよな。
MS-Wordとかさw >>845
横レス済まんが、仮にクォーテーションやハイホネーション無視でいいから
単語1文字目を大文字に、って要求だったら、あんた答えられるのかね? 先日、他部署を交えて開かれた社内技術交換会でのこと。
先輩は自分が開発担当したあるソフトのコーディング中に思いついたという
ある文字列処理のプログラミングについて得意気に解説し始めた。
話し始めてしばらくして、隣の部署の人が口をはさんだ。
「それ、正規表現使えば済む話ですよね。スクリプトならsedとかで、
C言語からならregex(3)の関数群呼べばいいし。ウチでも昔はそれ専用の
文字列処理をいちいちコーディングしてたこともありますが
今ではregex(3)ばかり使ってます。ところで今日のお話というのは、
regex(3)を改良する方法か何かですか?」
そのあと先輩の話は支離滅裂になり、何の技術交換会だったのか
よく覚えていない… 勉強会だったら別にいいじゃん
文字列処理に役立たなくてもコーディング技術の勉強になれば
正規表現のライブラリが使えるのと正規表現のロジックを編み出すのは全く別の話
なんで別の部署の奴は得意げなんだ?
正規表現の存在を知ってる俺カッケーってこと? コピペすなわちコピー&ペーストはWindoze用語。
UNIX(vi)ではヤンク&プットなのでヤンプと言う。
この用語を間違えて使用しているとドザと思われて馬鹿にされるので
気を付けるように。 \(..*\) ←どうしたって顔文字に見えちゃうよねぇ ホスト規制で使用する正規表現の「(、|、)」の使用法について質問です。
「tanaka.co.jp」「tanaka.ne.jp」の両方を規制したい場合
「\.tanaka.(co|ne).jp」であっていますでしょうか? それだと .tanakainenjp とかでもマッチしてしまいます ありがとうございます!
「\.tanaka\.(co|ne)\.jp」ですね >>861
見えちゃう、見えちゃう。って、あれ、自分で書いたんだったorz 「正規表現」って変な名前だけど、定着してきたみたいだね? 定着も何もコンピュータ上で実現される以前からこの名前じゃねーの? 正規表現は誤訳が定着したもの。
「無理数」の誤訳と一緒。 さらに有理数なんて、無理数の無を有に変えた造語だしな。 正しい訳語を提示せずに誤訳誤訳叫ぶとか馬鹿にしか見えませんよ? 教えて欲しいなら教えてくださいといって聞かないと馬鹿にしか見えませんよ? regular expression の正しい訳語を教えてください。 今頃って最初から聞き返されてるじゃん何いってんのコイツ 「教えてくださいといって聞かないと」と言われてからそう聞き直しても馬鹿にしか見えませんよ? >>887
こういう気持ち悪いのはだいたいFreeBSDユーザー >>888
こういう気持ち悪い偏見を持ってるのはだいたいLinuxユーザー で、適切な訳語ってなんなの?
それとも、馬鹿に見えた相手には教えちゃ駄目な宗教にでも入信してるのかな。 こういう誤訳に反応するのはだいたいNetBSDユーザー 訳語は訳者の著作物だからなぁ。こんなところに書いて権利放棄したくないし。 どんだけ高尚な訳語が出てくるのが楽しみだから、論文でも書いてどっかで発表してからまた来てくれ 翻訳に関して世界一頑張ったのは日本人なんだって、どこかで読んだな。 表意文字使ってるから頑張れば単語レベルで訳して意味を振れるんだよな。
カタカナ英語の乱用が白い目に見られるから訳せる分は訳そうとしたり。
中国とかはどうなんだろ? >>896
正規表現は正則表達式。
正規分布は正態分布。
正規化は規範化。
非正規社員は臨時工。 関西弁に反応する?正規表現
# 暇な人、できたら修正してやって下さい
# chaika 等で利用する目的の為、JavaScript の正規表現です
# spawned at 2ch.net/unix/正規表現
# http://peace.2ch.net/test/read.cgi/unix/1039165754/900
# news4vip/1395152022/ を参考にしました
# Rev.001
(?:
[^い]や|
や(?:[でわろ]|ねん|んか|んけ|けど|ない|んけ)|
るで|とるわ|[わが]な
)w*[、。?!\s]|
アホ|あほ|ホンマ|ほんま|アカン|あかん|ええで|なんでなん|
ええ(?:やろ|やん|な|わ)|
ちゃう(?:か|やん)|
でき(:?ん|ひん)|
(?:しとる|ない|よる)ねん|
(?:変わ|分か?)らん|
言うたかて 世紀表現とワイルドガードの違いを一言でゆうと何になりますか? |tac|sed -n '/./,/.\n/p'|tac|sed -n '/./,/.\n/p'
これは標準入力の中の上下の無駄な改行を全て削除します
perlの正規表現でやるならどう書けばよろしいでしょうか? >>905
(・∀・)アッテルカナ?
(・∀・)もっと別の書き方も見てみたい
perl -0777 -pe 's/\A\n+//s; s/\n+\Z/\n/s' (・∀・) $ デナク /.\n/ デアル理由ガワカラナイケド、コウ解釈シテ、カイテミタ
(標準入力の)複数行テキストの始まりと終わりの連続した改行を、削除する
(・∀・) Unix板コソ正規表現ニフサワシイト思ッテイマス
sed -e '1{:a;/^\n*$/{N;ba;};s/\n*//;};:b;/^\n*$/{${/^\n*$/d;};N;bb;}'
(・∀・) オ!自分デモ使イソウナノデ、ホゾンシトコウ
sed -e '
1 {
:loop1;
/^\n*$/ {
N;
b loop1;
};
s/\n*//;
};
:loop2;
/^\n*$/ {
$ {
/^\n*$/ d;
};
N;
b loop2;
}
'
(;・∀・) 間違ッテタラ、オシエテクレ レス数が900を超えています。1000を超えると表示できなくなるよ。