처음과 끝에 공백이 없는 RegEx
문자열의 처음과 끝에 공백을 허용하지 않고 문자열의 중간을 허용하는 식을 디자인하고 싶습니다.
제가 시도한 정규식은 다음과 같습니다.
\^[^\s][a-z\sA-Z\s0-9\s-()][^\s$]\
이 조작은 유효합니다.
^[^\s]+(\s+[^\s]+)*$
문자 제한을 포함할 경우:
^[-a-zA-Z0-9-()]+(\s+[-a-zA-Z0-9-()]+)*$
설명:
^
엔딩은 '''입니다.$
을 사용하다
준 볼 때, 내 consid consid consid consid consid consid consid consid consid consid consid consid consid consid 。[^\s]+
「」를 의미합니다.at least one not whitespace
★★★★★★★★★★★★★★★★★」\s+
「」를 의미합니다.at least one white space
()
및 세 와 "fragment"를 .*
은 '어느 쪽인가'를 의미합니다.zero or more of this group
그래서 보시면 표현은 : 입니다.
'A'와 합니다. 왜냐하면 이 입력은 다음 입력과 일치하기 때문입니다.begins with at least one non whitespace
'' 이유로 일치합니다.AA' aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 。 A는 A와 합니다.at least one not whitespace
'A하면 'A', 'A'가 일치합니다.any number of groups of at least one whitespace followed by at least one non whitespace
.
가 'A'가 일치하지 않기 때문입니다.begins with at least one non whitespace
'는 'A'가 아니기 때문에 하지 않습니다ends with any number of groups of at least one whitespace followed by at least one non whitespace
이치노
처음과 끝에 사용할 문자를 제한하려면 두 번째 정규식을 참조하십시오.시작과 끝에는 a-z, A-Z, 0-9 및 ()를 허용했습니다.이것만 허용됩니다.
Regex 놀이터: http://www.regexr.com/
이 RegEx에서는 문자열/단어의 처음 또는 끝에 공백을 사용할 수 없습니다.
^[^\s].+[^\s]$
공백으로 시작하거나 끝나지 않는 문자열은 모두 일치합니다.
설명:
^
에 문자열의 선두를 나타냅니다.\s
입니다.[^\s]
공백이 아님을 나타냅니다.다른 방법으로 사용할 수 있습니다.\S
같은 것을 나타냅니다..
에 예상되는 임의의 문자 줄 바꿈을 나타냅니다.+
는 1회 이상을 나타내는 수량화입니다.즉, 그 캐릭터는+
을 사용하다
이것을 RegEx 치트 시트로 사용할 수 있습니다.
를 들어, 특정 , 를 들어, 예를 들어, '아, 아, 아', '예'라고 하면,^[a-zA-Z0-9\s()-]+$
처음과 끝에 공백이 허용되지 않도록 조정하는 경우 패턴 시작 부분에 고정된 룩헤드를 사용할 수 있습니다.
^(?!\s)(?![\s\S]*\s$)[a-zA-Z0-9\s()-]+$
^^^^^^^^^^^^^^^^^^^^
여기서,
(?!\s)
(이므로) 에^
에는 공백 가 붙어 있습니다.(?![\s\S]*\s$)
도 - 뒤에 되므로)가^
스트링의 한 가 있습니다.문자열 시작 직후에는 가능한 한 많은0 + 문자가 표시됩니다( ).[\s\S]*
같 to 같 to to 。[^]*
()가 붙습니다.$
를 참조해 주세요.
JS에서는 다음과 같은 동등한 regex 선언을 사용할 수 있습니다.
var regex = /^(?!\s)(?![\s\S]*\s$)[a-zA-Z0-9\s()-]+$/
var regex = /^(?!\s)(?![^]*\s$)[a-zA-Z0-9\s()-]+$/
var regex = new RegExp("^(?!\\s)(?![^]*\\s$)[a-zA-Z0-9\\s()-]+$")
var regex = new RegExp(String.raw`^(?!\s)(?![^]*\s$)[a-zA-Z0-9\s()-]+$`)
것을 줄바꿈이 없다.[\s\S]
★★★★★★★★★★★★★★★★★」[^]
로 할 수 .
:
var regex = /^(?!\s)(?!.*\s$)[a-zA-Z0-9\s()-]+$/
regex 데모를 참조하십시오.
JS 데모:
var strs = ['a b c', ' a b b', 'a b c '];
var regex = /^(?!\s)(?![\s\S]*\s$)[a-zA-Z0-9\s()-]+$/;
for (var i=0; i<strs.length; i++){
console.log('"',strs[i], '"=>', regex.test(strs[i]))
}
문자열의 길이가 적어도1글자여야 하며, 중간에 다른 문자와 함께 새 행이 허용되며 첫 번째 + 마지막 문자가 공백(@#$!... 포함)을 제외한 모든 문자열이 될 수 있는 경우 다음을 찾습니다.
^\S$|^\S[\s\S]*\S$
설명 및 유닛테스트:https://regex101.com/r/uT8zU0
이 방법은 효과가 있었습니다.
^[^\s].+[a-zA-Z]+[a-zA-Z]+$
도움이 됐으면 좋겠다.
그럼 어떻게 해?
^\S.+\S$
이것은 공백으로 시작하거나 종료하지 않는 문자열과 일치합니다.
^[^\s].+[^\s]$
거거!!!!!! 또는 공백 없이 를 포함하는 됩니다.\에 삽입할에서 "\n"을 대체할 수 .\n 을n \n \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 。.+
타타에 [.\n]+
pattern="^[^ \ s ] + [ - a - zA - Z \ s ] + ( [ - a - zA - Z ] + $ " 이것은 문자만 받아들이는데 도움이 되며 시작 부분이나 공백은 사용할 수 없습니다.
이것은 시작 부분과 끝 부분에 공백이 없는 정규식이며, 그 사이는 1개뿐입니다.또, 3 문자 제한 없이 동작합니다.
\^([^\s]*[A-Za-z0-9]\s{0,1})[^\s]*$\
{를) 하고 - {0,1}면 됩니다.*
그 사이에 무한한 공간을 두기 위해서죠.
@Aprillion의 답변을 수정하기 위해 다음과 같은 것을 선호합니다.
^\S$|^\S[ \S]*\S$
- 시작, 끝 또는 둘 다 공백과 일치하지 않습니다.
- 문자열의 처음과 끝에 공백이 아닌 문자 사이에 임의의 수의 공백이 일치합니다.
- 또한 공백이 아닌 단일 문자만 일치합니다(여기의 많은 답변과 달리).
- Aprillion의 응답과는 달리 문자열 내의 newline(\n), \r, \t, \f, \v에는 일치하지 않습니다.질문에는 분명하지 않지만 유용한 구별입니다.
문자와 숫자는 한 칸으로 나누어져 있습니다.또한 시작과 끝에는 공간을 사용할 수 없습니다.
/^[a-z0-9]+( [a-z0-9]+)*$/gi
이를 위해 신뢰할 수 있는 방법은 첫 번째 문자에 대해 허용할 항목을 지정하고 다른 문자를 정상적으로 체크하는 것입니다.예를 들어 JavaScript:
RegExp("^[a-zA-Z][a-zA-Z- ]*$")
따라서 이 표현식은 처음에 한 글자만 허용하고 그 뒤에 원하는 수의 문자, 하이픈 또는 공백을 사용할 수 있습니다.
/^[^\s].([A-Za-z]+\s)*[A-Za-z]+$/
앞부분과 한 않습니다.
유효한 문자 세트의 특정 클래스를 작성할 필요가 없고(어느 언어 문자도 받아들일 수 있습니다), 「시작」과「종료」로부터 공백이 표시되지 않게 하는 경우, 「심플하지 않으면 안 된다」는 패턴은 다음과 같은 경우가 있습니다.
/^(?! ).*[^ ]$/
HTML 입력 시도:
input:invalid {box-shadow:0 0 0 4px red}
/* Note: ^ and $ removed from pattern. Because HTML Input already use the pattern from First to End by itself. */
<input pattern="(?! ).*[^ ]">
설명
^
의 시작(?!...)
(웃음) (웃음) (웃음)에는 > > ★★★★★★★★★★★ >\s
(스페이스 & 탭 & 다음 줄 문자)(?! )
첫 (</FONT CHANGE:> (FONT CHANGE:</FONT CHANGE:></FONT CHANGE:>.*
)
.
의 문자(Execute "Execute" (Execute)\n\r
를 선택합니다.*
)0 ( 트트 )[^ ]
임의의 문자 예상 공간 설정/클래스$
★★의
라이브 체험: https://regexr.com/6e1o4
^[^0-9 ]{1}([a-zA-Z]+\s{1})+[a-zA-Z]+$
- 사이에 공백이 1개 이하인 경우, 처음과 마지막에는 공백이 없습니다.
^[^0-9 ]{1}([a-zA-Z ])+[a-zA-Z]+$
- 사이에 공백이 두 개 이상 있는 경우 처음과 끝에 공백이 없습니다.
다른 답변들은 경기 길이에 제한을 두고 있다.이는 네거티브 룩어헤드 및 룩백을 사용하여 회피할 수 있습니다.
^(?!\s)([a-zA-Z0-9\s])*?(?<!\s)$
이 아님을 부터 시작합니다.^(?!\s)
a-zA-Z0-9\s
*?
), and ends by checking that the character before$
끝은 (줄/행의 끝)이 .\s
.
플랫폼/브라우저에서 룩헤드/룩후드가 지원되는지 확인합니다.
여기 있어요.
\b^[^\s][a-zA-Z0-9]*\s+[a-zA-Z0-9]*\b
- \b는 단어 경계입니다.
- \s+는 중간에 공백 공간을 하나 이상 허용함을 의미합니다.
(^(\s)+|(\s)+$)
이 표현식은 문서의 첫 번째 및 마지막 공백과 일치합니다.
언급URL : https://stackoverflow.com/questions/34974942/regex-for-no-whitespace-at-the-beginning-and-end
'source' 카테고리의 다른 글
REST 웹 서비스를 사용하여 메타데이터가 포함된 파일을 업로드하려면 어떻게 해야 합니까? (0) | 2023.02.10 |
---|---|
React Native 이미지 크기 조정 (0) | 2023.02.10 |
Wordpress에 URL 다시 쓰기 규칙 추가 (0) | 2023.02.10 |
Json Serialization에서 속성을 제외하는 방법 (0) | 2023.02.10 |
스프링 부트 시 TLS 1.2를 활성화하려면 어떻게 해야 합니까? (0) | 2023.02.10 |