任意文字数のアルファベット+任意桁数の数値で構成された
単語にのみ部分マッチする正規表現を教えてください。
条件は、前に数字が無いこと、または、後ろにアルファベットが無いことです。
例えば、
23*ade3456,ad-r4+4er3456=pol34k#gtu34&-de23knm723a3
この場合、
ade3456
r4
gtu34
に、マッチして欲しいのです。
4er3456
これは、手前に数字があるのでマッチしてはいけません。
pol34k
こちらは後ろにアルファベットが続いているのでマッチしてはいけません。
de23knm723a3
これはどこで切っても条件を満たしません。
以上、よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
こんにちは。
No.2のものですコツとしては
「ほしいものを厳密に表現しましょう」
です。
ggable様の考える、「任意文字数のアルファベット+任意桁数の数値で構成された単語」は
[a-zA-Z]+[0-9]+
ではなく、
(?<![a-zA-Z])[a-zA-Z]+[0-9]+(?![0-9])
であることが、サンプルから読み取れました。
これに2つの条件を加えまして・・・
(?<![0-9])(?<![a-zA-Z])([a-zA-Z]+[0-9]+)(?![0-9])(?![a-zA-Z])
このままでもいいのですが、まとめてすっきり、
(?<![0-9a-zA-Z])([a-zA-Z]+[0-9]+)(?![0-9a-zA-Z])
という感じです
ありがとうございました。
”ご説明頂いてすっきりしました”といいたいところですが、
なかなか奥が深くてすっきりするまでには至っておりません。
しかしながら、基本的な考え方も知らなかった私には、
とても勉強になりました。
また、同等な質問を繰り返してしまうかもしれませんが、
今後ともよろしくお願いいたします。
お世話になりました。
No.2
- 回答日時:
こんにちは
$_ = "23*ade3456,ad-r4+4er3456=pol34k#gtu34&-de23knm723a3";
@a = /(?<![0-9a-zA-Z])([a-zA-Z]+[0-9]+)(?![0-9a-zA-Z])/g;
print join("\n", @a);
この回答への補足
ご回答ありがとうございました。
ご指摘の通りでうまくいきました。
私の発想では、手前に数字が無いこと
?<![0-9]
と、後ろにアルファベットが無いこと
?![a-zA-Z]
を組み合わせて、
(?<![0-9])([a-zA-Z]+[0-9]+)(?![a-zA-Z])
で、うまくいくと思っていたのですが...
どういう風に考えれば、
?<![0-9a-zA-Z]
?![0-9a-zA-Z]
という条件を発想できるのでしょうか?
ご指導頂ければ幸いです。
No.1
- 回答日時:
こんにちわ。
サクラエディタの機能でちょこっと試してみた程度ですが
([a-zA-Z]+[0-9]+)
でいけるのでは?
23*「ade3456」,ad-「r4」+4「er3456」=「pol34」k#「gtu34」&-「de23knm723a3」
になりましたよ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) SUMIF関数について 4 2023/06/14 13:13
- Visual Basic(VBA) VBA B列にある前から10文字のみ表示 3 2023/08/07 11:24
- Excel(エクセル) Excelの入力規則にいれる関数について 7 2022/12/22 10:19
- その他(音楽・ダンス・舞台芸能) 音階についての簡単な質問です 3 2023/04/06 17:19
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- Excel(エクセル) こんにちは。ExcelのVLOOKUP関数のことで教えてください。 2 2022/05/07 11:33
- Excel(エクセル) Excelの数式の質問です。 A列に「redhat 8.0, centOS 7.9, python 4 2023/05/12 19:38
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 11:41
- その他(プログラミング・Web制作) 2つのテキストファイルを比べて文字列を特定する方法を教えて下さい 5 2022/05/01 15:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現について VB6
-
シェルスクリプト [[ $number =...
-
なんで真面目な出会いを求める...
-
コマンドプロンプトでのsedの使...
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
VBA 置換文字がみつからない時
-
マクロを使ってフォルダー内に...
-
VBA EXCEL あるセルの中の一...
-
「何とかで始まり、何とかで終...
-
pythonエラー
-
データにカンマが入ったCSVデー...
-
全角入力
-
英数字のみ全角から半角に変換
-
パイソンエラーについて
-
word差し込み印刷 半角カタカ...
-
[VBA][Excel]クリップボードか...
-
CString から LPCTSTRの型に変換
-
VBA 文字に半角が含まれて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現
-
コマンドプロンプトでのsedの使...
-
シェルスクリプト [[ $number =...
-
Perlで別ファイルから文字列の抽出
-
金額にマッチする正規表現について
-
正規表現のことで
-
リナックスの grepコマンド ...
-
この正規表現を教えて!
-
正規表現。行頭が○○以外にマッ...
-
アスタリスクを検索できません
-
正規表現 .+? について
-
sedの正規表現でグループ化する...
-
メールアドレスかどうかの
-
タグを削除する正規表現について
-
正規表現について VB6
-
言語ではなく、正規表現のみで...
-
CSVファイルの中で、「 , 」カ...
-
英数字のみ全角から半角に変換
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
おすすめ情報