職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

息子介護物語-エピソード66(令和6年4月)

2024年04月19日 | 医療

息子介護物語-エピソード66(令和6年4月)

【被介護者】
母:91才
要介護3
身長/体重;153/38
認知度:中位であるが、見当障害の為、被害妄想がひどくなって来た。また、運動不足に依る筋力低下や、食事量(80g)低下が見られる。また、傾眠傾向でもある。特に、子供がいる妄想を起こす。

【利用施設】
1.DK(デイケア)
さくら(加須東病院内):1回/週(土曜日)
2.ショートステイ
敬愛会のふれ愛の里:毎週2泊3日
久下さん家:毎週2泊3日(6年3/7)、ふれ愛がコロナのため

※ デイケアのサービス目的は、身体機能の回復・意地、日常生活の回復、認知機能の改善で、リハビリなどの医療的ケアに力を入れています

【介護関連企業】
ケアマネ:すずみな
介護用具:ひまわり館(車椅子・布団用手すり)4月で終了

【かかりつけ医】
加須東病院(内科・整形外科)・あだち眼科(神経内科)・徳洲会古河総合病院(整形外科・泌尿器)・澤口歯医者

【病 歴】
平成29年以前;大久保病院で内科(胃腸)・整形外科(腰痛)に通院している。
平成29年;大腸ポリープで3日間入院
平成30年5~10月;大腿骨頸部骨折(左足)で入院
令和元年8月7日;誤嚥性肺炎で2週間入院
令和2年5月;骨粗しょう症の治療中(ボンビバ注)
令和2年11月14日:転倒、首と手の甲と後頭部を打撲
令和2年12月25日~令和3年1月4日:ラクナ脳梗塞で入院
令和3年2月5日:左足の痛みにより、風呂から上がれず救急搬送
令和3年6月5日:脳神経内科により、パーキンソン症候群
令和4年3月14日~4月27日:肋骨骨折、右側2箇所
令和4年5月12日:便秘による切れ痔の為、救急搬送
令和4年8月~令和4年11月:膝の水抜きと、ヒアルロン酸注射
令和5年4月:脊椎圧迫骨折
令和5年7月14日~7/20:膀胱炎・過活動膀胱は便秘のため、閉塞を起こす恐れがあるため出せない
令和6年2月26日、ボンビバからプラリア注に変わる
令和6年3月15日、中度の膀胱炎(血尿有り)
令和6年3月24日~4月11日、徳洲会古河総合に入院
令和6年4月11日、ふれあいの里にロングショートに入所

【主な病状】
1.内科
慢性胃炎、逆流性食道炎、貧血、ラクナ脳梗塞、便秘・めまい・立ちくらみなど

2.整形外科
首筋の痛み・腰痛・すり足・左太ももの痛み・首筋から頭にかけての痛み・巻爪

3.あだち眼科(脳神経内科)
白内障・飛蚊症・パーキンソン症候群の疑い

【認知症:要介護3】
中核症状の見当識障害あり
→時間や季節感が無い
季節・日付・時間の認識ができない。
→場所が分からない
トイレ・風呂・寝床など場所が分からない
→人物誤認
子や孫や兄弟の判別がつかない!死んだ両親・兄弟の生死が分からない。常に子供の幻想を見る
→失語・失行
何を言いたいのか分からない?物の名前を忘れ、あれとか、違う物を言ったりする。
例えば、
ナシをバナナで剥け!急須に水を入れろなど、または、失語のため、相手とのコミニュケーションが取りづらい。トイレの場所を忘れたり、仕方を忘れたりする。
→物盗まれ妄想
物が見つからないと、人に盗まれたと言う。
→夕暮れ症候群?
今いる場所が分からなくなり、実家に帰ろうとする。午後、お風呂に入ろうとする
→被害妄想
近所の人から悪口を言われたと思い込んでいる。また、叱ると、いもしない子供もせいにする。やたらと、居ない兄弟の悪口を言う。
→傾眠傾向(けいみん)の症状あり
四六時中寝ているが、逆に真夜中は起きている。

【生活態度】
傾眠傾向があるせいか、普段は寝ている方が多い。また、不安感が強く、イライラしたり、泣いたりすることが増えた。また、妄想を起こして、奇妙な行動を取る。股を拭けなく成った

【介助内容】
・ 排泄介助・食事・着替え・歩行・薬・身の回り

【その他】
・差額ベッド(特別療養環境室)について、病院の都合の場合はただだよ。むやみに室料差額入室同意書にサインするなぁ
相談先:関東信越厚生局指導監査課

---記---

4/1(月)入院8日目
午前6時、起床!洗濯などの家事をやる
午前7時、パンとバナナを食う。洗濯物を干す
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始める。
午前10時半、ケアマネジャーの訪問日、介護区分変更を3→4・5へ
医師との面会日は、同行する。車椅子の場合は、介護タクシーを使う、
今の状態では、自宅じゃなく、施設の可能性のほうが強い!
午前11時15分、帰宅する
お昼は、野菜炒め
午後1時、皿洗い
午後2時、ゴゴスマ
午後3時、プラゴミ整理
午後4時、洗濯物を畳む
午後4時半、PCを閉じる。
午後5時、シャッターを閉じる
午後5時40分、レトルトカレーを食う
午後6時40分、お風呂に入る
午後7時、ニュース7
午後7時半、クロースアップ現代
午後8時、世界まる見え
午後9時、GTOをつまらんが見た
午後11時、寝る

4/2(火)入院9日目
午前6時、起床!ゴミ捨て・米研ぎなどの家事をやる
午前7時、パンとバナナを食う。
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始める
午前10時半、チョコ休み
お昼は、カップラーメン
午後1時、病院に面会に行く
午後1時半、ババァが車椅子に座ってナースステーションの前で、誰かと話していた。
午後2時、ベイシアで買い物をする
午後3時、帰宅
午後3時半、おやつを食う
午後4時半、PCを閉じる
午後5時、シャッターを閉じる
午後5時40分、豚カツ
午後6時40分、お風呂に入る
午後7時、ニュース7
午後7時半、クロースアップ現代
午後8時、さんま御殿
午後9時、ウオッチ9
午後10時、天使の耳~交通警察の夜
午後11時、寝る

4/3(水)入院10日目
午前6時、起床!洗濯などの家事をやる
午前7時、パンとバナナを食う。洗濯物を干す
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始める
午前9時半、台湾の地震で、沖縄に津波警報
午前10時半、チョコ休み
お昼は、豚カツ
午後1時、皿洗い
午後2時、ゴゴスマ
午後3時、バームクーヘンを食う
午後4時、なめこ汁を作る
午後4時半、PCを閉じる
午後5時、シャッターを閉じる
午後5時40分、ウインナを食う
午後6時40分、お風呂に入る
午後7時、ニュース7
午後7時半、クロースアップ現代;ダークパターン
午後8時、笑コラ
午後9時、ホンマでっかTV
午後10時、歴史探偵で寝落ち

4/4(木)入院11日目
午前6時、起床!朝家事をやる
午前7時、パンとバナナを食う。
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始める
午前10時半、チョコ休み
お昼は、レトルトの牛丼
午後1時、米研ぎ
午後2時、ゴゴスマ
午後2時半、生ゴミ整理
午後3時、クリームサンドを食う
午後3時半、なすを茹でる
午後4時半、PCを閉じる
午後5時、シャッターを閉じる
午後5時40分、ウインナを食う
午後6時40分、お風呂に入る
午後7時、プレバト
午後8時、人観察バラエティ:モニタリング
午後9時、ウオッチ9
午後10時、報道ステーション
午後11時、寝る

4/4(金)入院12日目・面会
午前6時、起床!洗濯・ゴミ出しなどの家事をやる
午前7時、パンとバナナを食う。洗濯物を干す
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始める
午前10時半、チョコ休み
お昼は、シュウマイ
午後1時、ババァの面会に行く
午後1時半、ステーションの前にいた。荷物を確認するために部屋へ行ったら、部屋が変わっていた。それから、退院の許可が出ていた。13日の予定
8日、お医者さんとの面談、11日介護認定日
午後2時半、ベイシアに買い出し
午後3時半、帰宅
午後4時、シュークリームを食う
午後4時半、PCを閉じる。洗濯物を畳む
午後5時、シャッターを閉じる
午後5時40分、メンチを食う
午後6時40分、お風呂に入る
午後7時、ニュース7
午後7時半、ネタドリ
午後8時、チコちゃんに叱られる
午後9時、すずめの戸締まり
午後11時、寝る

4/5(土)入院14日目
午前6時、起床!朝家事をやる
午前7時、パンとバナナを食う。
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始める
午前10時半、チョコ休み
午前11時半、冷凍カレーうどんを作ろう
お昼は、カレーうどんを食う
午後1時、皿洗い
午後3時、石焼き芋食った。
午後4時半、PCを閉じる。なんとなくイライラする
午後5時、シャッターを閉じる
午後5時40分、肉じゃが
午後6時40分、お風呂に入る
午後7時、池上彰のニュースそうだったのか!!
午後9時、サンデーステーション
午後10時、せっかち勉強~知らないとヤバい事
午後11時、寝る

4/5(日)入院15日目
午前6時、起床!洗濯・米研ぎなど家事をやる
午前7時、病院に電話を入れる。ババァが入れ歯を壊したらしい。パンとバナナを食う。
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始める
午前10時半、チョコ休み
お昼は、肉じゃが食いながら、のど自慢
午後1時、皿洗い
午後2時、ザ・ノンフィクション
午後3時半、洗濯物を畳む。焼き芋を食う
午後4時半、PCを閉じる
午後5時、シャッターを閉じる
午後5時40分、もつ煮
午後6時40分、お風呂に入る
午後7時、ニュース7
午後7時半、ダーウインが来た
午後8時、大河ドラマ「光る君へ」
午後9時、行列
午後10時、アクマゲーム
午後11時、寝る

4/8(月)入院16日目・医師と面会
午前6時、起床!朝家事をやる
最近、寝れない!ババァの状態が気になって
午前7時、パンとバナナを食う。
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始める
午前10時半、チョコ休み
お昼、もつ煮
午後1時、病院に母親の病状を聞きに行く、ケアマネも同席する。便秘は解消し、骨折もなく、腰の痛みも消えたとの事。
午後2時、ババァは、自立不可能であるため、ショートに行くことが決まった。その後、ケアマネが、ふれあいの里のショートと、しいな介護タクシーを探した。
ババァの退院後は、ふれあいの里と決まった。退院は11日、午後1時30分、
午後3時、マミーにお使いに行く
午後4時半、PCを閉じる。今日は疲れた。
午後5時、シャッターを閉じる
午後5時40分、もつ煮
午後6時40分、お風呂に入る
午後7時、ニュース7
午後7時半、クロ現
午後8時、ミリオンシンガー
午後9時、月曜から夜ふかし
午後11時、寝る

4/9(火)入院16日目
午前6時、起床!洗濯などの家事をやる
午前7時、パンとバナナを食う。
午前8時、二度寝
午前9時、壊れた入れ歯の件で歯医者に相談!施設側に頼んでくださいとの事。ブログ・ツイター・インスタを書き始める
午前10時半、チョコ休み
お昼は、ナポリタン
午後1時、皿洗いと、米研ぎ
午後2時、ゴゴスマ
午後3時半、豆腐と揚げの味噌汁を作る
午後4時半、空き缶の整理、洗濯物を畳む。PCを閉じる
午後5時、シャッターを閉じる
午後5時40分、焼き鳥
午後6時40分、お風呂に入る
午後7時、さんま御殿
午後8時、うたコン
午後9時、Destiny(宿命)
午後10時、天使の耳~交通警察の夜
午後11時、寝る

4/10(水)入院17日目
午前6時、起床!空き缶捨てなどの家事をやる
午前7時、パンとバナナを食う。
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始める
午前10時、ゆうちょと、ベイシアに行く
午前10時半、帰宅
お昼は、鶏と根菜の甘辛煮
午後1時、皿洗い
午後2時、ゴゴスマ
午後3時、退院の準備
午後4時半、PCを閉じる
午後5時、シャッターを閉じる
午後5時40分、カキフライ
午後6時40分、お風呂に入る
午後7時、ニュース7
午後7時半、クロ現:老人の労災問題
午後8時、アンビリーバボー
午後9時、上田と女が吠える夜
午後10時、報道ステーション
午後11時、寝る

4/11(木)入院18日目--退院日→施設(ローグショート)
午前6時、起床!洗濯などの家事をやる
午前7時、パンとバナナを食う。
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始める
午前10時、チョコ休み
お昼は、カップラーメン
午後1時、病院に到着して、入院費の支払い
午後1時半、着替えてから、病院からショートステー施設へ介護タクシーで向かう。着替え中、便漏れのシャツを渡らされた。
午後2時半、ショートステーに到着
午後3時、帰宅
午後4時、生ゴミ整理
午後4時半、洗濯物を畳む
午後5時、シャッターを閉じる
午後5時40分、コンビニの天ぷらそばを食う
午後6時50分、お風呂に入る
午後7時、ミュージックジェネレーション
午後9時、ウオッチ9
午後10時、Re:リベンジ
午後11時、寝る

4/12(金)ロング・ショート2日
午前6時、起床!朝家事をやる
午前7時、パンとバナナを食う。
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始める
午前10時半、三者会議を行う
・持参した薬を朝・昼・晩・寝る前にまとめること
・病院に受診した時、薬を次回かかる受診日より3日、多くもらい事
・5月1日に行って、今までの薬を飲んでもいいか聞くこと
・面会日は、事前に電話を入れること。面会は午後2からで二人ずつ
お昼は、コンビニ親子丼を食う
午後1時、米研ぎ
午後2時、アイン薬局に電話・他の医者からの薬を一包化出来るか
午後2時半、ひまわり館より電話有り、15日レンタルの回収
午後3時、おやつを食う
午後4時半、PCを閉じる
午後5時40分、和風ハンバーグを食う
午後6時50分、お風呂に入る
午後7時、ニュース7
午後7時半、ネタドリ
午後9時、イップス
午後10時、ガイアの夜明け
午後11時、寝る

4/13(土)ロング・ショート3日
午前6時、起床!洗濯などの家事をやる
午前7時、パンとバナナを食う。
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始める
午前9時半、ケアマネが契約書を持ってきた。ロングショートは約7万で上がるみたいだ。後は30日の全額負担(1.5万)と、介護タクシーの費用(1万)だけだ。それから、介護法が変わり、認知症患者に対して、放置・暴言・暴行をケアマネジャが見た時は、速やかに役所に届けなければならない
午前10時半、チョコ休み
お昼は、ウインナ
午後1時、皿洗い後、ベイシアに行く
午後2時、帰宅後、以前利用していたDSにパット72枚挙げる
午後3時、おやつ食う
午後3時半、洗濯物を畳む
午後4時半、PCを閉じる
午後5時40分、マグロの刺身を食う
午後6時50分、お風呂に入る
午後7時、ニュース7
午後7時半、プロジェクトX
午後8時、with MUSIC
午後9時、picu 小児集中治療室 スペシャル 2024
午後11時、寝る

4/14(日)ロング・ショート4日
午前6時、起床!朝家事をやる
午前7時、パンとバナナを食う。
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始める
午前10時、チョコ休み
お昼は、唐揚げ
午後1時、皿洗い後、米研ぎ
午後2時、ザ・ノンフィクション
午後3時、ロールケーキを食う。薬の一包化をする
午後4時半、一包化が終わった。PCを閉じる
午後5時、ほうれん草を茹でて、シャッターを閉める
午後5時40分、鳥の唐揚げを食う
午後6時50分、お風呂に入る
午後7時、ニュース7
午後7時半、ダーウインが来た
午後8時、大河ドラマ
午後9時、アンチヒーローを見る
午後10時、Mr.サンデー
午後11時、寝る

4/15、ショート5日目
午前6時、起床!洗濯などの家事をやる
午前7時、パンとバナナを食う。洗濯を干す
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始める
午前10時、チョコ休み
お昼は、ミートボールと、納豆
午後1時、レンタル介護用品を取りに来た。
午後2時、ゴゴスマ
午後3時、洗濯物を取り込む
午後4時、自動車が取りに来た
午後5時、PCを閉じる
午後5時40分、さばの味噌煮を食う
午後6時50分、お風呂に入る
午後7時、ニュース7
午後7時半、クロ現:物流2024年問題
午後8時、世界まる見え
午後9時、ウオッチ9
午後10時、アンメット
午後11時、寝る

4/16、ショート6日目
午前6時、起床!洗濯などの家事をやる
午前7時、パンとバナナを食う。洗濯を干す
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始める
午前10時、チョコ休み後、ふわふわ卵スープを作る
お昼は、さばの味噌煮
午後1時、ベイシアと100円ショップに買い出し
午後2時半、帰宅
午後3時、ロールケーキを食う
午後3時半、洗濯物を畳む
午後4時半、PCを閉じる
午後5時40分、カレーうどんを食う
午後6時50分、お風呂に入る
午後7時、ニュース7
午後7時半、クロ現:スポーツ賭博
午後8時、仰天ニュース
午後9時、Destiny(運命)
午後10時、交通警察の夜
午後11時、寝る

4/17、ショート7日目
午前6時、起床!朝家事をやる
午前7時、パンとバナナを食う。
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始める
午前10時半、チョコ休み
お昼は、豚カツ
午後1時、薬の一包化
午後2時、ゴゴスマ
午後3時、ロールケーキを食う
午後4時、修理に出した車が来た
午後4時半、PCを閉じる。
午後5時40分、豚カツ
午後6時50分、お風呂に入る
午後7時、ニュース7
午後7時半、クロ現:攻防!ハンバーガーの値段
午後8時、笑コラ
午後9時、サンマのホンマでっかTV
午後11時、寝る

4/18、ショート8日目
午前6時、起床!洗濯などの家事をやる
午前7時、パンとバナナを食う。洗濯を干す
午前8時、二度寝
午前9時、ブログ・ツイター・インスタを書き始めるが、薬をショートに持って行き、帰りにガソリンスタンドに寄る。
午前10時、再び、ブログ・ツイター・インスタを書く
午前10時半、チョコ休み
お昼は、クロームコロッケ
午後1時、皿洗いをする
午後2時、ゴゴスマ
午後3時、ロールケーキを食った後、生ゴミ整理
午後3時半、洗濯物を畳む
午後4時、自動車屋が領収書を持ってきた
午後4時半、PCを閉じる。
午後5時、シャッターを閉める
午後5時40分、焼き鳥
午後6時50分、お風呂に入る
午後7時、プレバト
午後8時、突破ファイル
午後9時、ウオッチ9
午後10時、MUSIC SPECIAL
午後11時、寝る

4/19、ショート9日目
午前6時、起床!生ゴミ捨てなどの家事をやる
午前7時、パンとバナナを食う。
午前8時、二度寝
午前8時半、加須市社会福祉協議会へ登録しに行く
午前9時半、コンビニに寄る
午前10時、帰宅。ブログ・ツイター・インスタを書く
午前10時半、休む

 

 








 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

JS--文字列を正規表現を使って区切るには

2024年04月18日 | 哲学

文字列を正規表現を使って区切るには

【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム

【区切り文字として正規表現を指定する】
split メソッドは、対象の文字列を指定した区切り文字で分割し、分割された文字列をそれぞれ要素として格納した配列を返します。
・書式

文字列.split([区切り文字[, 最大分割回数]])

引数の区切り文字には文字列を指定することもできますが、正規表現オブジェクトを指定することもできます。

文字列.split([正規表現[, 最大分割回数]])

サンプル
let msg = `こんにちは。今日は、朝から快晴
で気持ちがいいですね。散歩が楽しいです。`;
let msgAry = msg.split(/[。、\n]/);

console.log(msgAry);
>> ["こんにちは", "今日は", "朝から快晴", "で気持ちがいいですね", "散歩が楽しいです", ""]

対象の文字列はテンプレートリテラルを使って改行を含めて入力されています。
split メソッドの引数に指定する正規表現のパターンには「。」「、」「\n(改行)」のいずれかにマッチするものを指定しました。


split メソッドを実行すると正規表現で指定した 3 つの文字のいずれかの文字で対象の文字列を分割します。

このように区切り文字として正規表現オブジェクトを指定することで、より柔軟に対象の文字列を分割することができます。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

JS--マッチした文字列の取得

2024年04月17日 | JavaScript

マッチした文字列を取得するには

【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム

【matchメソッドの使い方】
String オブジェクトの match メソッドは、対象となる文字列が正規表現とマッチした場合に、マッチした文字列を取得します。書式は次の通りです。

文字列.match(正規表現オブジェクト)

文字列が引数に指定した正規表現とマッチした場合
マッチした文字列が格納された配列を返します。

マッチしなかった場合
null を返します。

戻り値の配列には
インデックス 0 の要素にパターン全体にマッチした文字列が、
インデックス 1 以降の要素には設定したキャプチャグループで囲んだパターンにマッチした文字列が格納される。
(キャプチャグループを設定していない場合はインデックス 1 以降の要素は存在しません)。

サンプル

let regexp = /20\d{2}-\d{2}-\d{2}/;
let str1 = 'Today is 2020-08-14';
let str2 = 'Yesterday is 1998-12-07';

let result1 = str1.match(regexp);
console.log(result1[0]);実行> 2020-08-14

let result2 = str2.match(regexp);
console.log(result2[0]);実行
> TypeError: Cannot read property '0' of null

【try~catch】
・文字列が正規表現にマッチした場合
パターン全体がマッチした文字列がインデックス 0 の要素の値として格納された配列として受取る

・マッチしなかった場合
戻り値は null となり、 null に対してインデックス 0 の要素を取得しようとすると TypeError が発生する。

サンプル

let regexp = /20\d{2}-\d{2}-\d{2}/;
let str = 'Yesterday is 1998-12-07';

let result = str.match(regexp);
try{
  console.log(result[0]);
} catch(e) {
  console.log('Not Match');
}

>> Not Match

【パターンにキャプチャグループが含まれる場合】
パターンにキャプチャグループが含まれている場合
キャプチャグループを作成するには、パターンの中を括弧()で囲います。するとキャプチャグループに設定したパターンの部分にマッチした文字列を取得することが出来る。
・サンプル

let regexp = /(20\d{2})-(\d{2})-(\d{2})/;
let str = 'Today is 2020-08-14';

let result = str.match(regexp);
for (let i = 0 ; i >> i=0, match=2020-08-14
>> i=1, match=2020
>> i=2, match=08
>> i=3, match=14
 

正規表現にマッチした場合→戻り値として配列を受け取る。
インデックス 0 の要素→パターン全体がマッチした文字列が格納される。
インデックス 1 以降の要素→それぞれキャプチャグループで囲まれたパターンにマッチした文字列が格納されている。

【パターンに名前付きキャプチャグループが含まれる場合】

JavaScript では名前付きキャプチャグループも利用することができます。書式は次の通りです。

(?<グループ名>パターン)

名前のないキャプチャグループの場合、 match メソッドの戻り値である配列に含まれるインデックス 1 以降の要素の値を参照することでキャプチャした文字列を取得することができましたが、名前付きキャプチャグループでキャプチャした文字列は次の書式で参照することができます。

配列.groups.グループ名

サンプル
let regexp = /(?20\d{2})-(?\d{2})-(?\d{2})/;
let str = 'Today is 2020-08-14';

let result = str.match(regexp);
let year = result.groups.year;
let month = result.groups.month;
let day = result.groups.day;

console.log(year + '年' + month + '月' + day + '日');
実行
>2020年08月14

名前付きキャプチャグループのキャプチャ(保存する)をそれぞれ取得し、 1 つの文字列にまとめて出力しました。

できることは名前付きであっても名前がなくても同じですがキャプチャグループの番号で指定するよりもグループ名で指定してキャプチャを取得下方が分かりやすいコードにはなるかと思います。

【マッチした文字列の位置を参照する】
match メソッドを実行して文字列が正規表現にマッチした場合、マッチした文字列の先頭文字のインデックスが戻り値として取得した配列の index プロパティに設定されます。そこで index プロパティを参照することでマッチした文字列の位置を参照することができます。インデックスは対象の文字列の先頭文字が 0 、次の文字が 1 、と続いていきます。

サンプル

let regexp = /20\d{2}-\d{2}-\d{2}/;
let str = 'Today is 2020-08-14';

let result = str.match(regexp);
console.log(result[0]);
> 2020-08-14
console.log(result.index);
> 9

【グローバルフラグが設定されている場合】

パターンの最後に g を記述するとグローバルフラグを設定することができます。

/パターン/g

・正規表現にグローバルフラグが設定されている場合
match メソッドを実行すると対象の文字列の中で正規表現がマッチするすべての文字列が格納された配列を返します。

・グローバルフラグが設定されている場合
パターンにキャプチャグループが設定されていてもキャプチャは取得することができません。

サンプル

let regexp = /[A-Z].+?day/g;
let str = 'Sunday Monday Tuesday';

let result = str.match(regexp);
for (let i = 0 ; i > Sunday
> Monday
> Tuesday対象の文字列の中でパターンに一致するすべての文字列を取得することができました。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

JS--マッチした文字列のインデックス取得

2024年04月15日 | JavaScript
文字列のインデックス取得

【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム

【searchメソッドの使い方】

String オブジェクトの search メソッドは、対象となる文字列が正規表現とマッチした場合に、マッチした最初の文字列のインデックスを返します。書式は次の通りです。

文字列.search(正規表現オブジェクト)

・マッチした場合
最初にマッチした文字列の先頭文字のインデックスを返します。
・マッチしなかった場合
「-1 」を返します。

インデックスは対象の文字列の先頭文字が 0 、次の文字が 1 、と続いていきます。

サンプル

let regexp = /ball/;
let str1 = 'baseball and football';
let str2 = 'Make a cake tomorrow';

console.log(str1.search(regexp));実行> 4
console.log(str2.search(regexp));実行
> -1

対象の文字列では正規表現にマッチする箇所が 2 つありますが、最初にマッチした文字列の先頭文字のインデックスである 4 が返されます。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

JS--正規表現にマッチした文字列を取得する

2024年04月11日 | JavaScript

正規表示にマッチした文字列を取得する

【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム

【execメソッドの使い方】
RegExp オブジェクトの exec メソッドは、対象となる文字列が正規表現とマッチした場合に、マッチした文字列を取得します
書式は次の通りです。

正規表現オブジェクト.exec(文字列)

引数に指定した文字列が正規表現とマッチした場合は、マッチした文字列が格納された配列を返します。マッチしなかった場合は null を返します。
戻り値の配列には
インデックス 0 の要素にパターン全体にマッチした文字列、
インデックス 1 以降の要素には設定したキャプチャグループで囲んだパターンにマッチした文字列が格納されます。
(キャプチャグループを設定していない場合はインデックス 1 以降の要素は存在しません)。

配列[0]  パターン全体にマッチした文字列
配列[1]  キャプチャグループ1にマッチした文字列
配列[2]  キャプチャグループ2にマッチした文字列
・・・
配列[n]  キャプチャグループnにマッチした文字列

サンプル

let regexp = /20\d{2}-\d{2}-\d{2}/;

let result1 = regexp.exec('Today is 2020-08-14');
console.log(result1[0]);実行
> 2020-08-14

let result2 = regexp.exec('Yesterday is 1998-12-07');
console.log(result2[0]);実行
> TypeError: Cannot read property '0' of null

文字列が正規表現にマッチした場合には、パターン全体がマッチした文字列がインデックス 0 の要素の値として格納された配列として受け取ります。

ただマッチしなかった場合には戻り値は null となり、 null に対してインデックス 0 の要素を取得しようとすると TypeError が発生します。

次のように null かどうかの条件分岐を追加するか例外処理を行ってください。

let regexp = /20\d{2}-\d{2}-\d{2}/;

let result = regexp.exec('Yesterday is 1998-12-07');
if (result !== null){
  console.log(result[0]);
}else{
  console.log('Not Match');
}
実行
> Not Match

【パターンにキャプチャグループが含まれる場合】
続いてパターンにキャプチャグループが含まれている場合です。
キャプチャグループを作成するには、パターンの中を括弧()で囲います。
するとキャプチャグループに設定したパターンの部分にマッチした文字列を取得することができます。

サンプル

let regexp = /(20\d{2})-(\d{2})-(\d{2})/;

let result = regexp.exec('Today is 2020-08-14');
for (let i = 0 ; i > i=0, match=2020-08-14
> i=1, match=2020
> i=2, match=08
> i=3, match=14

文字列が正規表現にマッチした場合は、戻り値として配列を受け取ります。インデックス 0 の要素にはパターン全体がマッチした文字列が格納される。
インデックス 1 以降の要素にはそれぞれキャプチャグループで囲まれたパターンにマッチした文字列が格納される。

【マッチした文字列の位置を参照する】
exec メソッドを実行して文字列が正規表現にマッチした場合、
マッチした文字列の先頭文字のインデックス戻り値として取得した配列の index プロパティに設定される。
そのため、 index プロパティを参照することでマッチした文字列の位置を参照することができます。
インデックスは対象の文字列の先頭文字が 0 、次の文字が 1 、と続いていきます。

サンプルコード

let regexp = /20\d{2}-\d{2}-\d{2}/;

let result = regexp.exec('Today is 2020-08-14');
console.log(result[0]);実行
> 2020-08-14
console.log(' lastIndex=' + result.index);実行
> lastIndex=9


対象の文字列の中で、正規表現にマッチした文字列の先頭文字のインデックスを参照することができました。

【グローバルフラグを設定してる場合】

パターンの最後に g を記述するとグローバルフラグを設定することができます。

/パターン/g

正規表現にグローバルフラグが設定されている場合
→exec メソッドを実行し文字列が正規表現にマッチすると、正規表現オブジェクトの lastIndex プロパティの値がマッチした文字列の次の文字のインデックスに設定されます。
(グローバルフラグが設定されていない場合は、 exec メソッドでマッチしたとしても lastIndex は 0 のままです)。

サンプル

let regexp = /[A-Z].+?day/g;
let str = 'Sunday Monday Tuesday';

let result = regexp.exec(str);
console.log(result[0]);実行> Sunday
console.log(' lastIndex=' + regexp.lastIndex);実行
> lastIndex=6

そのあとで同じ正規表現に対して同じ文字列を引数に指定して exec メソッドを実行すると、現在の lastIndex が示す文字列の位置から正規表現とマッチする文字列を取得します。再びマッチした場合は、改めて lastIndex プロパティの値が更新されます。

サンプル

let regexp = /[A-Z].+?day/g;
let str = 'Sunday Monday Tuesday';

let result = regexp.exec(str);
console.log(result[0]);実行
> Sunday
console.log(' lastIndex=' + regexp.lastIndex);実行
> lastIndex=6

result = regexp.exec(str);
console.log(result[0]);実行
> Monday
console.log(' lastIndex=' + regexp.lastIndex);実行
> lastIndex=13

exec メソッドを実行したときに正規表現にマッチしなかった場合には lastIndex は 0 に戻ります。

let regexp = /[A-Z].+?(day)/g;
let str = 'Sunday Monday Tuesday';

let result = regexp.exec(str);
while (result !== null){
  console.log(result[0]);
  console.log(result[1]);
  console.log(' lastIndex=' + regexp.lastIndex);

  result = regexp.exec(str);
}
console.log(' lastIndex=' + regexp.lastIndex);

>> Sunday
>> day
>> lastIndex=6
>> Monday
>> day
>> lastIndex=13
>> Tuesday
>> day
>> lastIndex=21
>> lastIndex=0

このようにグローバルフラグを設定することで、同じ文字列に対して正規表現が複数回マッチするかどうか確認しマッチした場合はその文字列を取得することができます。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする