質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

解決済

3回答

143閲覧

正規表現の条件について

uer03108

総合スコア194

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

3クリップ

投稿2017/08/30 10:01

下記の様に書くと、英数文字の10文字を指定することが出来ますが、
「数字か英文字が1文字以上含まれる」という条件を追加することが出来るでしょうか。

String regex = "[0-9A-Za-z]{10}"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

swordone

2017/08/31 06:06

Higemuraさんのコメントに書いたような、「英字および数字がいずれも1文字以上」ということを言いたいのなら、そう質問を編集しておいてください。
guest

回答3

0

ベストアンサー

「数字のみ10文字」と「英字のみ10文字」を否定の先読みで除外しておけば、
「英数混じり10文字」のみにマッチする正規表現になります。

java

1String regex = "(?![0-9]{10})(?![a-zA-Z]{10})[0-9a-zA-Z]{10}";

マッチ処理を考えると後読みのほうがいいかな?

java

1String regex = "[0-9a-zA-Z]{10}(?<![0-9]{10})(?<![a-zA-Z]{10})";

投稿2017/08/30 18:35

編集2017/08/30 18:39
swordone

総合スコア20649

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uer03108

2017/08/31 06:39

有難うございます。 いけました。 後読みは、どう考えればよいのでしょうか(?_?)
swordone

2017/09/01 13:00 編集

こちらをご覧ください。 https://www.javadrive.jp/regex/lookahead/ 簡単に言うと、先読みが今いる場所の先が合うかチェックするのに対し、後読みは今いる場所から遡って合うかチェックします。
uer03108

2017/09/02 06:26

サイトの紹介有難うございました。 理解できました。
guest

0

「数字と英字が1文字ずつ含まれる」ということでしょうか。

Java

1String regex = "[0-9][A-Za-z]|[A-Za-z][0-9]"

10文字の中に英数字以外の文字が含まれるなら、肯定先読みを使う必要があります。

Java

1String regex = "(?=[^0-9]{0,9}[0-9])(?=[^A-Za-z]{0,9}[A-Za-z])";

正規表現エンジンによっては、[0-9]\d に置き換える事が可能です。

Re: uer03108 さん

投稿2017/08/30 10:49

編集2017/08/30 10:55
think49

総合スコア18156

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

1文字以上でしたらそのままで大丈夫だと思いますが、
しっかり設定したいのであれば{1,10}にすれば良いと思います。

String regex = "[0-9A-Za-z]{1,10}"//1文字以上10文字以下

間違っていたらすみません、、、

投稿2017/08/30 10:19

編集2017/08/30 10:21
Higemura

総合スコア274

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uer03108

2017/08/30 10:33

言葉足らずでした。 ×数字のみの10文字 ×英文字のみの10文字 という意味です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問