다음 문자열이 <=10 & <20
이고이 문자열을 분할하여 다음 결과를 제공합니다. ('<=' '10' '<' '20')
&은 다른 영역에서 처리하기 때문에 관련이 없습니다. 내 코드! 감사합니다문자열을 분할 하려는데 구분 기호를 유지하려고합니다.
답변
당신은 정규식을 사용할 수 있습니다.
"<=10 & <20".match(/(([<=>]+)|(\d+))/g)
당신이 필요로 정확히 반환 : 당신은 또한 지원이 필요한 경우
마지막 정규 표현식이 가능한 사업자가 무엇에서 달려 물론["<=", "10", "<", "20"]
은 문자열
을 가질 수 귀하의 질문에 대한 가능한 예 음수 값의 경우 다음과 같이 표현식을 변경할 수 있습니다.
"<=10 & <-20".match(/(([<=>]+)|(-?\d+))/g)
및 그 결과 :
이 작업을 수행하려고합니까?
var str;
str = '<=10';
str.match(/([^0-9]+)([0-9]+)/); // ["<=10", "<=", "10"]
str = '<20';
str.match(/([^0-9]+)([0-9]+)/); // ["<20", "<", "20"]
이 (>=
<=
>
<
의 올바른 구문을 보장) 후있어 어떻게해야 : 당신이 컴파일러와 같은 문자열을 토큰 화하는 wan't 같은
"<=10 & <20".match(/(<|>)=?|(\d+)/g);//["<=", "10", "<", "20"]
이 보인다. 이미 컴퓨터 과학 수업을 들었다면 Lexical Analysis에 대한 지식이 있어야합니다. 즉, 문자열을 유연하게 토큰 화하려면 State Machine이 필요합니다. 이 요구 사항을 해결하는 또 다른 방법은 없습니다. 알고리즘의
그냥 엿볼 :
var tokens = new Array();
var inputStr ...;
... a lot of state variables
var currentState = LexicalAnalysisStates.START;
for (var i = 0; i < inputStr.length; i++) {
var nextChar = input.charAt(i);
switch (currentState) {
case LexicalAnalysisStates.START: ...; // process nextChar considering START state
case LexicalAnalysisStates.DIGIT: ...; // process nextChar considering DIGIT state
case LexicalAnalysisStates.EQUAL: ...; // process nextChar considering EQUAL state
}
}
... here you should have your token collection populated
힌트 : this one
편집과 같은 최종 상태 기계의 스케치를 그려 시작 : 아르 템의 코멘트 후 자바 스크립트 구문 코드를 업데이트했습니다.
이 대답은 정말 관련이 있습니까/필요합니까? – SmokeyPHP
왜 필요하지 않은가요? 그의 요구 사항에 대한 내 가정이 유효하고 분할 필요가있을 경우 간단한 정규 표현식으로는 OP를 도울 수 없습니다 훨씬 더 복잡해진다. – samuelgrigolato
@samuelgrigolato 귀하의 대답은 Java에 대한 가치가 있지만 질문은 "javascript"로 표기됩니다 – Artem
- 1. 분할 문자열을 따옴표로 구분 기호를 무시 (파이썬)
- 2. 값으로 구분 기호를 유지하면서 파이썬 정규식 문자열을 분할하면서 문자열을 분할
- 3. 구분 기호를 사용하여 내용 분할
- 4. C에서 여러 구분 기호를 사용하여 문자열 분할
- 5. Ruby : 구분 기호를 제거하지 않고 문자열 분할
- 6. 구분 기호를 사용하여 문자열 배열을 분할
- 7. 여러 구분 기호를 사용하여 문자열 분할
- 8. 구분 기호로 C++ 분할 문자열 및 결과에서 구분 기호를 유지
- 9. 문자열을 분할하고 구분 기호를 캡처하는 정규식?
- 10. 구분 기호를 기준으로 열 값을 분할 했습니까?
- 11. Jquery에서 분할 구분 기호를 어떻게 결정합니까?
- 12. UNIX에서 구분 기호를 기반으로하는 분할 선
- 13. 정규식 구분 기호를 사용하여 거대한 텍스트 분할
- 14. 다중 문자 구분 기호를 사용하여 문자열 분할
- 15. 구분 기호를 제거하지 않고 문자열 분할
- 16. 문자열을 여러 구분 기호로 단어로 분할
- 17. '문자열에서 구분 기호를
- 18. 구분 기호로 구분 기호를 구분하지만 반환 배열에 구분 기호를 포함합니다.
- 19. 어떻게 구분 기호를 유지하고 구분 기호 사이에 분할을 갖는 펄에서 문자열을 분할 할 수 있습니까?
- 20. 역 슬래시 구분 기호를 기준으로 문자열을 분할합니다.
- 21. 문자열을 분리하고 구분 기호를 유지하는 방법은 무엇입니까?
- 22. VB.Net의 구분 기호를 기반으로 배열로 문자열을 분할하는 방법
- 23. 빈 줄 구분 기호로 분할
- 24. CRLF 구분 기호를 생략하고 TString을 사용하여 문자열 분할
- 25. 자바에서 구분 기호를 사용하여 char []를 별도의 char []로 분할
- 26. 대괄호 안에 구분 기호를 무시하고 RegExp를 사용하여 JavaScript에서 문자열 분할
- 27. 구분 기호를 삭제하지 않고 처리 중 문자열을 분할하는 방법이 있습니까?
- 28. 구분 기호로 단어를 사용하여 문자열을 분할
- 29. 는 콜론으로 구분 배쉬에서 문자열을 분할 변수
- 30. 구분 기호를 한 번만 사용하여 문자열을 분할하는 방법은 무엇입니까?
그 결과는 배열에 넣습니다. 내가 왜 이것을하려고하는지 궁금합니다. –
정규 표현식은 솔루션입니다. – karaxuna
&는 부적절합니다. 문자열을 분할하지만 내 분리 문자를 유지할 수 있습니다. –