x

주요 장

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. 빠른 시작 가이드 - LimeSurvey 3.0+
  3. 설치 - LimeSurvey CE
  4. 좋은 설문조사를 디자인하는 방법(가이드)
  5. 시작하기
  6. LimeSurvey 관리
  7. 설문조사 - 소개
  8. 설문조사 설정
  9. 설문조사 메뉴
  10. 설문 조사 구조
  11. 질문 - 소개
  12. 질문 그룹 - 소개
  13. 설문조사 관리
  14. 설문조사 도구 모음 옵션
  15. 다국어 설문조사
  16. ExpressionScript 엔진 - 빠른 시작 가이드
  17. 미분류 및 고급 기능
  18. 일반 FAQ
  19. 문제 해결
  20. 해결 방법
  21. 특허
  22. 버전 변경 로그
  23. 플러그인 - 고급
 Actions

정규표현식 사용하기

From LimeSurvey Manual

이 페이지는 기계 번역되었을 수 있으며 오류가 포함되어 있을 수 있습니다. 영어 원문 보기 · 이 번역 개선하기
This page is a translated version of the page Using regular expressions and the translation is 100% complete.

정규표현식은 슬래시("/")로 시작하고 끝나야 합니다. https://www.regexlib.net/ 에서 다양한 정규표현식 라이브러리를 찾을 수 있습니다. 이러한 패턴은 슬래시로 감싸면 거의 항상 작동합니다.

정규표현식을 테스트하려면 이 정규표현식 테스터를 사용할 수 있습니다.

이 위키 섹션을 개선할 수 있도록, 성공적으로 테스트한 정규표현식을 추가해 주시기 바랍니다. 새로운 LimeSurvey 사용자(잠재 사용자)가 이 기능을 더 잘 이해하는 데 도움이 됩니다.
  주의 : 아래의 모든 예제는 한 줄로 작성되어 있습니다!



중요: 조건에서의 정규표현식

조건 편집기에서 정규표현식을 사용할 때는 시작과 끝의 슬래시를 포함하지 마십시오.


이메일 유효성 검사

업데이트(2018년 12월): 요즘 도메인 이름에는 “ü”와 같은 특수 문자가 포함될 수 있고 .tech 또는 .company처럼 3자를 넘는 도메인도 사용되므로, 아래 이메일 정규표현식은 입력된 이메일 주소에 “@”와 “.”이 있는지만 확인합니다.

/^.+?@.+?\..+$/

여러 줄의 긴 텍스트 필드에서 한 줄에 하나씩 주소를 유효성 검사하려면 다음을 사용하십시오.

/^(((\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*(\r\n)?\n?)+)*)$/

다음의 오래된 정규표현식은 도메인 이름을 3자로 제한하므로 사용 가능한 모든 도메인을 포함하지 못합니다.

/^(\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})?$/

우편번호가 0으로 시작하도록 하려면 다음을 사용하십시오.

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

영국 우편번호

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

이 정규표현식은 매우 정확하지는 않으며, 더 정확한 유효성 검사는 훨씬 복잡합니다. 자세한 내용은 StackOverflow 답변과 Wikipedia를 참조하십시오.

프랑스 우편번호

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

위 표현식은 매우 정확하며, 해외 도(DOM)와 해외 영토(TOM)(DOM-TOM)를 포함하여 프랑스 도(Department)가 존재하는지(처음 두 자리) 확인합니다.


전화번호

미국 전화번호

/^(?:\([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

괄호, 공백, 하이픈은 무시됩니다.

여기에 나열된 '매우 정밀:' 버전은 번호의 처음 네 자리 또는 다섯 자리를 검사하여 유효한 호주 번호인지 확인합니다.

'덜 정밀:' 버전은 첫 번째와 두 번째 숫자만 검사하므로 유효하지 않은 번호가 허용될 수 있습니다.

모든 호주 전화번호 (휴대폰 및 유선 전화 - 지역 번호 필수)

매우 정밀:

/^\(?(?:\+?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-59](\s?\d{2}){4}$/

프랑스 휴대전화 번호

/^((\+|00)33\s?|0)[67](\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])/

예시: 18~35세

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

예시: 19~65세

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


숫자 유효성 검사

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}$/ does the same as above but should run a little faster

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까지의 숫자를 허용하며, 소수점 이하 두 자리는 선택 사항입니다:

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

천 단위 구분 기호가 있는 숫자 유효성 검사

공백을 구분 기호로 사용, 음수 불가

/^(?!0)\d{1,3}(\ \d{3})*$/

점을 구분 기호로 사용, 음수 허용

/^-?(?!0)\d{1,3}(\.\d{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}$/

위와 유사하지만 소수점 이하 두 자리를 필수로 하며, 소수 구분 기호 "," 앞에 "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})?$/

스위스 가격

소수점 뒤에 두 자리 소수가 있고, 그 마지막 자리가 5 또는 0인 숫자:

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


점수 유효성 검사

1-10

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

1-100

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


텍스트 유효성 검사

짧은 서술 여러 개 질문 유형은 현재 최소 또는 최대 응답 수를 지원하지 않습니다. 이를 우회하는 한 가지 방법은 장문 자유 서술 질문 유형에 정규표현식을 사용하는 것입니다.

아래 표현식은 줄당 단어가 최소 하나 이상이고, 줄 수가 최소 3줄 이상 최대 10줄 이하인지 검사합니다.

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

예를 들어 줄당 다섯 단어를 원한다면, 첫 번째와 마지막 별표(*)를 {4,}로 변경하면 됩니다.

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

줄당 하나 이상의 단어(1줄에서 5줄 사이)를 원한다면, 마지막 중괄호 안의 내용을 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 부분을 변경하세요.

최대값을 늘리거나 줄이려면 {0,199}의 "199" 부분을 변경하세요.

시간 유효성 검사

시간 형식을 작성하는 방법은 여러 가지가 있습니다. 12시간제 또는 24시간제, 초 포함 또는 초 미포함 등의 옵션이 가능합니다. 날짜 질문 유형을 사용할 수도 있지만(시간도 입력받을 수 있습니다), 아래 유효성 검사 정규 표현식 중 하나와 함께 짧은 자유 서술 질문 유형을 사용할 수도 있습니다.

다음 세 가지 유효성 검사 문자열은 순서대로 초가 없는 24시간제, 초가 선택 사항인 24시간제, 초가 필수인 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]$/

다음 세 가지는 위와 같이 초가 없는 경우, 초가 선택 사항인 경우, 초가 필수인 경우의 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))$/

다음 세 가지는 위와 같이 초가 없는 경우, 초가 선택 사항인 경우, 초가 필수인 경우의 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])$/

미국 주(State)

하나의 주를 유효성 검사하려면 다음을 사용하십시오(예시는 텍사스입니다).

  • TX 대문자만:
    /^(TX)$/
    
  • tx 소문자만:
    /^(tx)$/
    
  • TX 대문자 또는 소문자:
    /^([T|t][X|x])$/
    


욕설 필터

응답에서 욕설을 필터링하려면 다음을 사용하십시오.

/^(?i)((?!\bENTERPROFANITYHERE\b).)*$(?-i)/

"ENTERPROFANITYHERE"를 금지하려는 단어로 바꾸십시오.

\b를 사용하면 욕설 단어로 "ass"나 "hell"을 입력하더라도 "assassination"이나 "hello" 같은 단어는 통과됩니다. 이 방법은 다른 단어나 이름 등을 응답에서 제외하려는 경우에도 사용할 수 있습니다.


유용한 링크

이 위키 섹션의 앞부분에서 정규 표현식을 테스트하고 생성하려면 https://regex101.com/ 을 사용하시기를 권장했습니다. 첫 번째 옵션이 마음에 들지 않는 경우 https://www.regextester.com/ 에서 표현식을 생성할 수도 있습니다. 정규 표현식을 시각화하려면 https://extendsclass.com/regex-tester.html 을 사용할 수 있습니다.