^(?![_\.\'\-])(?:[\p{L} ]+)$
,이 :이 정규식이 실패하지 않아야한다고 생각합니다. 무엇이 실종 된 것입니까? 만약 내가 제대로 이해하고
(?![_\.\'\-])
부정적인 내다, 그 밑줄, 점, 아포스트로피 또는 빼기 기호 (임의의 수)로 시작할 수 없습니다 문자열입니다.(?:[\p{L} ]+)
Ll, Lm, Lo, Lt 및 Lu와 공백에서 적어도 하나의 문자를 허용합니다.
첫 번째 질문은 : "1Bob"과 같은 것으로 실패하지 않아야합니다 (미리보기 때문에). 그래서 why it fails?
두 번째 질문은 내가 Ll, Lm, Lo, Lt 및 Lu의 문자 목록 또는 설명을 찾을 수있는 곳입니까?
그래서 "1Bob"은 두 번째 그룹이 아니기 때문에 실패합니다. – gremo
@Gremo, correct, 다음과 같이하면됩니다 :'if (preg_match ("/^(?![_\.\'\-))", $ text)) {...}' –
또한, lookahead 문자 클래스에서 모든 백 슬래시를 삭제할 수 있습니다. '/ u' 수식자를 사용해야 할 수도 있습니다. 그래서 유니 코드 프라퍼티가 제대로 작동합니다. –