x

Main chapters

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. LimeSurvey Cloud - Quick start guide
  3. LimeSurvey CE - Installation
  4. How to design a good survey (Guide)
  5. Getting started
  6. LimeSurvey configuration
  7. Introduction - Surveys
  8. View survey settings
  9. View survey menu
  10. View survey structure
  11. Introduction - Questions
  12. Introduction - Question Groups
  13. Introduction - Surveys - Management
  14. Survey toolbar options
  15. Multilingual survey
  16. Quick start guide - ExpressionScript
  17. Advanced features
  18. General FAQ
  19. Troubleshooting
  20. Workarounds
  21. License
  22. Version change log
  23. Plugins - Advanced
 Actions

Using regular expressions/ja: Difference between revisions

From LimeSurvey Manual

Bravehorse (talk | contribs)
No edit summary
FuzzyBot (talk | contribs)
Updating to match new version of source page
Line 6: Line 6:
[https://regex101.com/ こちらの正規表現テスター]で自作の正規表現をテストすることができます。
[https://regex101.com/ こちらの正規表現テスター]で自作の正規表現をテストすることができます。


<div class="mw-translate-fuzzy">
''無事にテストをパスした正規表現を使ってください。''
''無事にテストをパスした正規表現を使ってください。''
</div>


<div class="mw-translate-fuzzy">
例(すべて1行で記述することに注意してください):
例(すべて1行で記述することに注意してください):
</div>


=重要: 条件における正規表現=
=重要: 条件における正規表現=


条件エディターで正規表現を使用する場合は、前後のスラッシュを含めないでください。
条件エディターで正規表現を使用する場合は、前後のスラッシュを含めないでください。


=メールアドレスの検証=
=メールアドレスの検証=


<div class="mw-translate-fuzzy">
<source lang="html">
<source lang="html">
/^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,3})$/
/^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,3})$/
</source>
</source>
</div>


=郵便番号=
=郵便番号=
Line 43: Line 53:


この表現は厳密には正確ではなく、実際の検証はもっと複雑です。詳細は、[http://stackoverflow.com/questions/164979/uk-postcode-regex-comprehensive StackOverflow answer]や[http://en.wikipedia.org/wiki/Talk:Postcodes_in_the_United_Kingdom#Regular_Expressions Wikipedia]などを参照してください。
この表現は厳密には正確ではなく、実際の検証はもっと複雑です。詳細は、[http://stackoverflow.com/questions/164979/uk-postcode-regex-comprehensive StackOverflow answer]や[http://en.wikipedia.org/wiki/Talk:Postcodes_in_the_United_Kingdom#Regular_Expressions Wikipedia]などを参照してください。
==French postcodes==
<source lang="html">/(^[0-8]\d\d{3}$)|(^9[0-5]\d{3}$)|(^97[1-6]\d{2}$)|(^98[46-8]\d{2}$)/</source>
<div class="mw-translate-fuzzy">
<source lang="html">/^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$/</source>
</div>


=電話番号=
=電話番号=


==アメリカの電話番号==
==アメリカの電話番号==


<source lang="html">/^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$/</source>
<source lang="html">/^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$/</source>


または
または
Line 92: Line 112:
<source lang="html">/^\(?(?:\+?61|0)(?:(?:2\)?[ -]?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])|3\)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])|7\)?[ -]?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)|8\)?[ -]?(?:5[ -]?[1-4]|6[ -]?[0-8]|[7-9][ -]?[0-9]))(?:[ -]?[0-9]){6}|4\)?[ -]?(?:(?:[01][ -]?[0-9]|2[ -]?[0-57-9]|3[ -]?[1-9]|4[ -]?[7-9]|5[ -]?[018])[ -]?[0-9]|3[ -]?0[ -]?[0-5])(?:[ -]?[0-9]){5})$/
<source lang="html">/^\(?(?:\+?61|0)(?:(?:2\)?[ -]?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])|3\)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])|7\)?[ -]?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)|8\)?[ -]?(?:5[ -]?[1-4]|6[ -]?[0-8]|[7-9][ -]?[0-9]))(?:[ -]?[0-9]){6}|4\)?[ -]?(?:(?:[01][ -]?[0-9]|2[ -]?[0-57-9]|3[ -]?[1-9]|4[ -]?[7-9]|5[ -]?[018])[ -]?[0-9]|3[ -]?0[ -]?[0-5])(?:[ -]?[0-9]){5})$/
</source>
</source>


簡易版:
簡易版:
Line 103: Line 122:


<source lang="html">/^\(?(?:\+?61|0)(?:2\)?[ -]?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])|3\)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])|7\)?[ -]?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)|8\)?[ -]?(?:5[ -]?[1-4]|6[ -]?[0-8]|[7-9][ -]?[0-9]))(?:[ -]?[0-9]){6}$/</source>
<source lang="html">/^\(?(?:\+?61|0)(?:2\)?[ -]?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])|3\)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])|7\)?[ -]?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)|8\)?[ -]?(?:5[ -]?[1-4]|6[ -]?[0-8]|[7-9][ -]?[0-9]))(?:[ -]?[0-9]){6}$/</source>


簡易版:
簡易版:
Line 134: Line 152:


<source lang="html">/^(?:\(?(?:\+?61|0)7\)?[ -]?)?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)(?:[ -]?[0-9]){6}$/</source>
<source lang="html">/^(?:\(?(?:\+?61|0)7\)?[ -]?)?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)(?:[ -]?[0-9]){6}$/</source>


簡易版:
簡易版:
Line 155: Line 172:


<source lang="html">/^(?:\+?61|0)4 ?(?:(?:[01] ?[0-9]|2 ?[0-57-9]|3 ?[1-9]|4 ?[7-9]|5 ?[018]) ?[0-9]|3 ?0 ?[0-5])(?: ?[0-9]){5}$/</source>
<source lang="html">/^(?:\+?61|0)4 ?(?:(?:[01] ?[0-9]|2 ?[0-57-9]|3 ?[1-9]|4 ?[7-9]|5 ?[018]) ?[0-9]|3 ?0 ?[0-5])(?: ?[0-9]){5}$/</source>


簡易版:
簡易版:
Line 179: Line 195:
  <source lang="html">/([2-9][0-9])/</source>
  <source lang="html">/([2-9][0-9])/</source>


=Age validation=
Example: Age 20-99
<source lang="html">/([2-9][0-9])/</source>


例: 18-35歳
例: 18-35歳
  <source lang="html">/(1[8-9]|2[0-9]|3[0-5])/</source>
  <source lang="html">/(1[8-9]|2[0-9]|3[0-5])/</source>


例: 19-65歳
例: 19-65歳
  <source lang="html">/^(1[8-9]|[2-5][0-9]|6[0-5])$/</source>
  <source lang="html">/^(1[8-9]|[2-5][0-9]|6[0-5])$/</source>
=Number validation=


=数値の検証=
=数値の検証=
Line 198: Line 223:
0から199(小数点以下2桁があっても可)にマッチさせる例。
0から199(小数点以下2桁があっても可)にマッチさせる例。
  <source lang="html">/^([1][0-9][0-9]|[1-9][0-9]|[0-9])((\.)[0-9][0-9])?$/</source>
  <source lang="html">/^([1][0-9][0-9]|[1-9][0-9]|[0-9])((\.)[0-9][0-9])?$/</source>


小数点以下2桁が必須で、3桁ずつのカンマ区切り(省略可)があり、1.00から999,999,999.00までにマッチさせる例。1.00、1,000.00、12,345.67、12345,02、123,456,468.00、1234566.00、123456789.00にマッチし、1,23.00、12,3.4、1234,43.04にはマッチしない。
小数点以下2桁が必須で、3桁ずつのカンマ区切り(省略可)があり、1.00から999,999,999.00までにマッチさせる例。1.00、1,000.00、12,345.67、12345,02、123,456,468.00、1234566.00、123456789.00にマッチし、1,23.00、12,3.4、1234,43.04にはマッチしない。
Line 206: Line 230:
  <source lang="html">/[0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/</source>
  <source lang="html">/[0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/</source>


<div class="mw-translate-fuzzy">
上記と同様で、小数点以下を省略可とする例:
上記と同様で、小数点以下を省略可とする例:
<source lang="html">/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(?:\.[0-9]{2})?$/ </source>
<source lang="html">/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(?:\.[0-9]{2})?$/ </source>
</div>


==月(1-12)==
==月(1-12)==
Line 214: Line 240:


  <source lang="html">/^[0]*[1-9]$|^[0]*1[0-2]$/</source>
  <source lang="html">/^[0]*[1-9]$|^[0]*1[0-2]$/</source>


=最小の桁数(下記の例では3桁以上)=
=最小の桁数(下記の例では3桁以上)=


  <source lang="html">/^.{3,}$/</source>
  <source lang="html">/^.{3,}$/</source>


=通貨=
=通貨=


==アメリカの通貨($記号、セント)==
==アメリカの通貨($記号、セント)==
Line 233: Line 263:


  <source lang="html">/^(\d+)(\.\d(05)?)?$/</source>
  <source lang="html">/^(\d+)(\.\d(05)?)?$/</source>


=点数の検証=
=点数の検証=


==1から10==
==1から10==
Line 243: Line 275:


  <source lang="html">/^[1-9]?[0-9]{1}$|^100$/</source>
  <source lang="html">/^[1-9]?[0-9]{1}$|^100$/</source>


=テキストの検証=
=テキストの検証=


現在、自由回答(短い・複数)質問タイプでは、最小値・最大値はサポートしていません。別のやり方として、正規表現つきで自由回答(長い)質問タイプを使用する方法があります。
現在、自由回答(短い・複数)質問タイプでは、最小値・最大値はサポートしていません。別のやり方として、正規表現つきで自由回答(長い)質問タイプを使用する方法があります。
Line 254: Line 288:
1行あたり5単語にしたい場合は、最初と最後のアスタリスクを{4,}に置き換えます。
1行あたり5単語にしたい場合は、最初と最後のアスタリスクを{4,}に置き換えます。


<source lang="html">/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})){2,10}/is</source>
<source lang="html">/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})){2,10}/is</source>


1行目から5行目まで、各行に1単語以上あるようにしたい場合は、最後の中括弧の中身を'''0,4'''に変更します(最初の行ですでにマッチしているので0を使います)。
1行目から5行目まで、各行に1単語以上あるようにしたい場合は、最後の中括弧の中身を'''0,4'''に変更します(最初の行ですでにマッチしているので0を使います)。
Line 271: Line 305:


=時刻の検証=
=時刻の検証=


時刻を記述する方法はいくつかあります。例えば、12時間か24時間か、秒ありか秒なしです。日付質問タイプ(現在の時刻を取得することもできます)を使用するほか、"自由回答(短い)"質問タイプを使用し、以下の正規表現のいずれかで検証することもできます。
時刻を記述する方法はいくつかあります。例えば、12時間か24時間か、秒ありか秒なしです。日付質問タイプ(現在の時刻を取得することもできます)を使用するほか、"自由回答(短い)"質問タイプを使用し、以下の正規表現のいずれかで検証することもできます。
Line 281: Line 316:


<source lang="html">/^(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/</source>
<source lang="html">/^(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/</source>


次の3つは12時間表示の時刻にマッチし、上記と同様、秒なし、秒任意、秒必須の例です。
次の3つは12時間表示の時刻にマッチし、上記と同様、秒なし、秒任意、秒必須の例です。
Line 291: Line 324:


<source lang="html">/^(?:00:[0-5][0-9]:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9]:[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9]:[0-5][0-9] (?:pm|PM))$/</source>
<source lang="html">/^(?:00:[0-5][0-9]:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9]:[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9]:[0-5][0-9] (?:pm|PM))$/</source>


次の3つは12または24時間表示の時刻にマッチし、上記と同様、秒なし、秒任意、秒必須の例です。
次の3つは12または24時間表示の時刻にマッチし、上記と同様、秒なし、秒任意、秒必須の例です。
Line 303: Line 334:


=アメリカの州=
=アメリカの州=


以下は、州の検証の例(テキサス州)です。
以下は、州の検証の例(テキサス州)です。
Line 308: Line 340:
*tx(小文字のみ) = <source lang="html">/^(tx)$/</source>
*tx(小文字のみ) = <source lang="html">/^(tx)$/</source>
*TX(大文字または小文字) = <source lang="html">/^([T|t][X|x])$/</source>
*TX(大文字または小文字) = <source lang="html">/^([T|t][X|x])$/</source>


=不適切語フィルター=
=不適切語フィルター=


不適切な単語を回答からフィルターする方法です。
不適切な単語を回答からフィルターする方法です。
Line 318: Line 352:


\bをつけると、"ass"や"hell"を不適切語としている場合に、"assassination"や"hello"を許可します。これは、他の単語や名前を回答から取り除く場合にも機能します。
\bをつけると、"ass"や"hell"を不適切語としている場合に、"assassination"や"hello"を許可します。これは、他の単語や名前を回答から取り除く場合にも機能します。
=Helpful links=
In the beginning of this wiki section, we recommend you to use https://regex101.com/ to test/create regular expressions. You can also use https://www.regextester.com/ to create expressions in case you are unhappy about the first option.

Revision as of 15:45, 8 January 2019

正規表現は始めと終わりがスラッシュ("/")でなければなりません。http://www.regexlib.net/に正規表現の事例集があります。スラッシュで挟まれたものはほぼすべて機能します。

こちらの正規表現テスターで自作の正規表現をテストすることができます。

無事にテストをパスした正規表現を使ってください。

例(すべて1行で記述することに注意してください):


重要: 条件における正規表現

条件エディターで正規表現を使用する場合は、前後のスラッシュを含めないでください。


メールアドレスの検証

/^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,3})$/

郵便番号

オーストラリアの郵便番号

/^[0-9]{4}/

ブラジルの郵便番号

/^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/

カナダの郵便番号

/^[a-zA-Z]\d{1}[a-zA-Z](\-| |)\d{1}[a-zA-Z]\d{1}$/

アメリカの郵便番号

/^[0-9]{5}([- /]?[0-9]{4})?$/

イギリスの郵便番号

/^[A-Z][A-Z]?[0-9][A-Z0-9]? ?[0-9][ABDEFGHJLNPQRSTUWXYZ]{2}$/i

この表現は厳密には正確ではなく、実際の検証はもっと複雑です。詳細は、StackOverflow answerWikipediaなどを参照してください。

French postcodes

/(^[0-8]\d\d{3}$)|(^9[0-5]\d{3}$)|(^97[1-6]\d{2}$)|(^98[46-8]\d{2}$)/
/^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$/


電話番号

アメリカの電話番号

/^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$/

または

/^[\(\)\.\- ]{0,}[0-9]{3}[\(\)\.\- ]{0,}[0-9]{3}[\(\)\.\- ]{0,}[0-9]{4}[\(\)\.\- ]{0,}$/

二つ目の例は、数字以外の記号を含むカナダとアメリカの電話番号用です。

 . ( ) - (space)

この表現では、次のような電話番号にもマッチします。

  • (555)555 5555
  • 555.555.5555
  • 555 555 5555
  • (555)-555-5555
  • 555-555-5555
  • 555555555

オーストラリアの電話番号

次のパターンは、"+61"の国コードを含む、オーストラリアのすべての携帯・固定の電話番号にマッチします。

  • (02) 9123 6535
  • 03 1234-5345
  • 0412 345 678
  • +61 2 3456 789

以下のものにはマッチしません。

  • 234 3450 234
  • a234 534 3432
  • 134567
  • 123456789013

括弧、スペース、ハイフンは無視されます。

次に挙げる'正確版'は、最初の4ないし5桁が有効なオーストラリアの電話番号であることを確認します。

'簡易版'では、最初の2桁しか見ていないため、無効な番号にもマッチします。

すべてのオーストラリアの電話番号(携帯・固定、市外局番込み)

正確版:

/^\(?(?:\+?61|0)(?:(?:2\)?[ -]?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])|3\)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])|7\)?[ -]?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)|8\)?[ -]?(?:5[ -]?[1-4]|6[ -]?[0-8]|[7-9][ -]?[0-9]))(?:[ -]?[0-9]){6}|4\)?[ -]?(?:(?:[01][ -]?[0-9]|2[ -]?[0-57-9]|3[ -]?[1-9]|4[ -]?[7-9]|5[ -]?[018])[ -]?[0-9]|3[ -]?0[ -]?[0-5])(?:[ -]?[0-9]){5})$/

簡易版:

/^(?:\+?61|0)[2-478](?:[ -]?[0-9]){8}$/

すべてのオーストラリアの電話番号(固定のみ、市外局番含む)

正確版:

/^\(?(?:\+?61|0)(?:2\)?[ -]?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])|3\)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])|7\)?[ -]?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)|8\)?[ -]?(?:5[ -]?[1-4]|6[ -]?[0-8]|[7-9][ -]?[0-9]))(?:[ -]?[0-9]){6}$/

簡易版:

/^(?:\+?61|\(?0)[2378]\)?(?:[ -]?[0-9]){8}$/

ニューサウスウェールズの固定電話番号(市外局番は省略可)

正確版:

/^(?:\(?(?:\+?61|0)2\)?[ -]?)?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])(?:[ -]?[0-9]){6}$/

簡易版:

/^(?:\(?(?:\+?61|0)2\)?(?:[ -]?[0-9]){7}[0-9]$/

ビクトリア、タスマニアの固定電話番号(市外局番省略可)

正確版:

/^(?:\(?(?:\+?61|0)3\)?[ -]?)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])(?:[ -]?[0-9]){6}$/

簡易版:

/^(?:\(?(?:\+?61|0)3\)?(?:[ -]?[0-9]){7}[0-9]$/

クイーンズランドの固定電話番号(市外局番は省略可)

正確版:

/^(?:\(?(?:\+?61|0)7\)?[ -]?)?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)(?:[ -]?[0-9]){6}$/

簡易版:

/^(?:\(?(?:\+?61|0)7\)?(?:[ -]?[0-9]){7}[0-9]$/

南オーストラリア、北部準州、西オーストラリアの固定電話番号(市外局番は省略可)

正確版:

/^(?:\(?(?:\+?61|0)8\)?[ -]?)?(?:5[1-4]|6[0-8]|[7-9][0-9])$/

簡易版:

/^(?:\(?(?:\+?61|0)8\)?(?:[ -]?[0-9]){7}[0-9]$/

オーストラリアの携帯電話番号

正確版:

/^(?:\+?61|0)4 ?(?:(?:[01] ?[0-9]|2 ?[0-57-9]|3 ?[1-9]|4 ?[7-9]|5 ?[018]) ?[0-9]|3 ?0 ?[0-5])(?: ?[0-9]){5}$/

簡易版:

/^(?:\(?(?:\+?61|0)4\)?(?:[ -]?[0-9]){7}[0-9]$/

ベルギーの電話番号

/^((\+|00)32\s?|0)(\d\s?\d{3}|\d{2}\s?\d{2})(\s?\d{2}){2}$/

ベルギーの携帯電話番号

/^((\+|00)32\s?|0)4(60|[789]\d)(\s?\d{2}){3}$/

フランスの電話番号

/^((\+|00)33\s?|0)[1-5](\s?\d{2}){4}$/

フランスの携帯電話番号

/^((\+|00)33\s?|0)[679](\s?\d{2}){4}$/

ルクセンブルクの電話番号

/^((\+|00\s?)352)?(\s?\d{2}){3,4}$/

ルクセンブルクの携帯電話番号

/^((\+|00\s?)352)?\s?6[269]1(\s?\d{3}){2}$/

ドイツマルク(正負記号付きも可)

/^[1-6]{1}[\+|\-]?$/

年齢の検証

例: 20-99歳

/([2-9][0-9])/


Age validation

Example: Age 20-99

/([2-9][0-9])/

例: 18-35歳

/(1[8-9]|2[0-9]|3[0-5])/

例: 19-65歳

/^(1[8-9]|[2-5][0-9]|6[0-5])$/


Number validation

数値の検証

1から99999までの数値

/^([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9])$/
/^[1-9][0-9]{0,4}$/ も同じですが、少し早く動作します

1から999、1.000から999.999、999.999.999まで

/^[1-9][0-9]{0,2}(?:\.[0-9]{3}){0,2}$/

1から999、1.000から999.999、999.999.999までにマッチしますが、999.1.1、94.22.22、999.1.22、999.11.1、999.1.333といったものにはマッチしません。

小数点込みの数値の検証(価格向け)

0から199(小数点以下2桁があっても可)にマッチさせる例。

/^([1][0-9][0-9]|[1-9][0-9]|[0-9])((\.)[0-9][0-9])?$/

小数点以下2桁が必須で、3桁ずつのカンマ区切り(省略可)があり、1.00から999,999,999.00までにマッチさせる例。1.00、1,000.00、12,345.67、12345,02、123,456,468.00、1234566.00、123456789.00にマッチし、1,23.00、12,3.4、1234,43.04にはマッチしない。

/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/

上記に似た例: 小数点以下2桁が必須で、桁区切り","の前に"0"を許容する例。

/[0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/

上記と同様で、小数点以下を省略可とする例:

/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(?:\.[0-9]{2})?$/

月(1-12)

誕生した月に関する質問の回答を検証する場合:

/^[0]*[1-9]$|^[0]*1[0-2]$/


最小の桁数(下記の例では3桁以上)

/^.{3,}$/


通貨

アメリカの通貨($記号、セント)

/^\$?\d+(\.(\d{2}))?$/

カンマを使用する場合:

/^\$?\d{1,3}(\d+(?!,))?(,\d{3})*(\.\d{2})?$/

スイスの価格表示

小数点以下に2桁あり、小数点以下第2位の桁が0か5となる数値:

/^(\d+)(\.\d(05)?)?$/


点数の検証

1から10

/^[1-9]{1}$|^10$/

1から100

/^[1-9]?[0-9]{1}$|^100$/


テキストの検証

現在、自由回答(短い・複数)質問タイプでは、最小値・最大値はサポートしていません。別のやり方として、正規表現つきで自由回答(長い)質問タイプを使用する方法があります。

次の例は、1行に1単語あり、少なくとも3行、多くとも10行であることをテストします。

/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)){2,10}/is

1行あたり5単語にしたい場合は、最初と最後のアスタリスクを{4,}に置き換えます。

/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})){2,10}/is

1行目から5行目まで、各行に1単語以上あるようにしたい場合は、最後の中括弧の中身を0,4に変更します(最初の行ですでにマッチしているので0を使います)。

/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)){0,4}/is

ワード数

以下の例では、許容される単語の数を最小1と最大200に制限しています。
/^[-\w]+(?:\W+[-\w]+){0,199}\W*$/
最小値を増やしたいときは、{0,199}のゼロの部分を変更します。

最大値を増減したいときは、{0,199}の199の部分を変更します。

時刻の検証

時刻を記述する方法はいくつかあります。例えば、12時間か24時間か、秒ありか秒なしです。日付質問タイプ(現在の時刻を取得することもできます)を使用するほか、"自由回答(短い)"質問タイプを使用し、以下の正規表現のいずれかで検証することもできます。

次の3つの検証文字列は、24時間表示の時刻をテストするもので、(出現順に)秒なし、秒任意、秒必須の例です。

/^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/
/^(?:[01][0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9])?$/
/^(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/

次の3つは12時間表示の時刻にマッチし、上記と同様、秒なし、秒任意、秒必須の例です。

/^(?">00:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9] (?:pm|PM))$/
/^(?:00:[0-5][0-9](?::[0-5][0-9])? (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9](?::[0-5][0-9])? (?:[ap]m|[AP]M)|12:[0-5][0-9](?::[0-5][0-9])? (?:pm|PM))$/
/^(?:00:[0-5][0-9]:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9]:[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9]:[0-5][0-9] (?:pm|PM))$/

次の3つは12または24時間表示の時刻にマッチし、上記と同様、秒なし、秒任意、秒必須の例です。

/^(?:(?:00:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9] (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9])$/
/^(?:(?:00:[0-5][0-9](?[0-5][0-9])? (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9](?[0-5][0-9])? (?:[ap]m|[AP]M)|12:[0-5][0-9](?[0-5][0-9])? (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9](?[0-5][0-9])?)$/
/^(?:(?:00:[0-5][0-9]:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9]:[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9]:[0-5][0-9] (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])$/

アメリカの州

以下は、州の検証の例(テキサス州)です。

  • TX(大文字のみ) =
    /^(TX)$/
    
  • tx(小文字のみ) =
    /^(tx)$/
    
  • TX(大文字または小文字) =
    /^([T|t][X|x])$/
    


不適切語フィルター

不適切な単語を回答からフィルターする方法です。

/^(?i)((?!\b不適切語\b).)*$(?-i)/

上記の"不適切語"の部分を適宜変更します。

\bをつけると、"ass"や"hell"を不適切語としている場合に、"assassination"や"hello"を許可します。これは、他の単語や名前を回答から取り除く場合にも機能します。


Helpful links

In the beginning of this wiki section, we recommend you to use https://regex101.com/ to test/create regular expressions. You can also use https://www.regextester.com/ to create expressions in case you are unhappy about the first option.