正規表現を使って複数条件を指定する場合
"文字列内に●がはいっていたらtrue
もしくは、先頭に▲がある場合はfalse"
という、論理和的な条件は分かるのですが、
"文字列内に●がはいっていたらtrue
ただし先頭に▲がある場合はfalse"
という、論理積的な条件の作り方がよく分かりません。
前者では、「もしくは」になってしまうので
先頭に▲があろうがなかろうが、●さえ入っていればtrueになってしまいます。
しかし、やりたいのは「ただし」であり
●がたとえ入っていようと、▲が先頭にあればflaseにしたいのです。
どうすれば、後者の条件を正規表現で実現できるでしょうか?
No.3ベストアンサー
- 回答日時:
論理的な話をしているようなので...
「ただし」という言葉を使うのがわかりづらくしているような気がします。
「かつ」「または」だけを使って構成しなおしてみるのがいいと思います。
"文字列内に●がはいっていたらtrue
ただし先頭に▲がある場合はfalse"
は、
(1)
"文字列内に●がはいっており、
かつ先頭に▲以外がある場合はtrue"
と考えるのがいいではないでしょうか。
またはさらに、
(2)
"文字列内に●がはいっており、
かつ先頭に▲がない場合はtrue"
速度などを考えずに言葉どおりにやると
(1)
if(preg_match("/●/",$val) and preg_match("/^[^▲]/",$val))
(2)
if(preg_match("/●/",$val) and ! preg_match("/^▲/",$val))
のようになるかと思います。
(もちろんstrposなどを使ってもいいと思います。)
回答ありがとうございます。
なるほど、if内に
preg_matchを二つ置けばよかったんですね。
でも”速度などを考えず”にということは
速度的にはあまりよくない処理方法なのでしょうか・・・。
No.2
- 回答日時:
pregでいいのなら、
^(?!▲).*●
回答ありがとうございます。
?ってphpのpregで使えるんでしょうか・・・。
バージョン等の問題なのかもしれませんが
エラーになってしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) VB.NETの正規表現について 4 2022/04/12 16:54
- JavaScript 正規表現について質問です。条件に合う場合はtrueを返したい 3 2022/10/06 23:02
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 11:41
- Java Java 南京錠 2 2023/02/04 11:46
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- Excel(エクセル) Excel 文字列を結合するときに重複をなくしたい 関数・VBA 2 2022/12/12 10:40
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPで変数から1行目だけを取得...
-
、"(ダブルクォーテーション)...
-
preg_match()の使い方
-
switchの大量分岐の高速化
-
PHPで<a>タグ内からURLと文字を...
-
入力フォームの文字規制
-
PHPメールフォーム URLと半角...
-
Excelで数字のみを2倍3倍にする...
-
preg_matchで Warning: Undefin...
-
preg_match : マッチした位置の...
-
preg_matchと定数について
-
mb_eregのブレースについて(住...
-
正規表現パターンの記入方法に...
-
htmlソースからタグ内のテキス...
-
マルチバイトの文字列の検索方法
-
VBAのコマンドボタンの文字列の...
-
エスケープ文字の復帰(¥r)と...
-
メッセージボックスで1025文字...
-
ソースコードの1行が長いとき...
-
文字の入力で横バー上段、中断...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
preg_matchでエラーが出ます。
-
VBAを使ってHTMLソースから特定...
-
Excelで数字のみを2倍3倍にする...
-
PHPで変数から1行目だけを取得...
-
正規表現でシングルクォーテー...
-
、"(ダブルクォーテーション)...
-
正規表現で「0」のみ抽出
-
住所から特定の文字列、数値を...
-
PHPで あるフォルダ内の、特定...
-
phpでhtmlソースを解析し、文字...
-
PHPで<a>タグ内からURLと文字を...
-
正規表現で特定のHTMLタグのク...
-
PHPの正規表現で住所を分けるに...
-
Smartyを使用した、テンプレー...
-
PHPによるIPアドレスマッチ
-
正規表現で、半角大文字と半角...
-
php 正規表現で(ただし○○は除...
-
PHPメールフォーム URLと半角...
-
「半角数字」と「+」を許可する...
-
preg_matchでのマッチが正しく...
おすすめ情報