정규식을 사용하다가 다음과 같은 매우 이상한 현상을 발견했습니다.
[--\ ]
< /p>
[_-\ ]
< /p>
[=-\ ]
< /p>
즉, 첫 번째는 문자와 일치할 수 없고, 두 번째는 문자와 일치할 수 있으며, 세 번째는 문자와 슬래시와 일치할 수 있습니다.
이러한 특수 문자가 문자열에 나타날 때 바꾸고 싶습니다. 문자조차 대체될 것이라고는 예상하지 못했지만 이 요구 사항을 충족하기 위해 다른 쓰기 방법을 사용할 수 있다는 것을 알고 있습니다. 이런 식으로 쓰는 것이 왜 그렇게 이상한지 모르겠습니다. 위대하신 하나님, 이 규칙을 설명해 드리겠습니다.
맙소사, 아직도 이런 게 있는데, 정규 정규 표현식을 작성하기가 너무 어렵네요
[+-~]
[i-~]
[--~]
[_-~]
[=-~]
...
관심이 있으시면 hello w\o\r\l\d
와 일치시켜 보세요.
我想大声告诉你2017-05-16 13:09:23
우선 첫 번째 예시는 법적 단골이 아니어서 결과가 나오지 않습니다.
다음 두 예제의 정규식은 가장 기본적인 [a-z]
구문입니다. 즉, 한 문자의 모든 문자를 다른 문자 인코딩과 일치시키는 것을 의미합니다. [a-z]
语法,表示匹配从一个字符到另一个字符编码之间的所有字符。
两例子中,起始字符分别是 _
、=
, 终止字符都是全角符号 ˇ
。
全角符号编码大于所有 ASCII 编码,所有在匹配 AscII 编码时都匹配,不用多考虑,我们查下起始字符的 ASCII 编码。
ASCII 编码中:/
< 0-9
< =
< A-Z
< <
_
< a-z
所以, [=-ˇ]
能匹配大写字母、反斜杠、小写字母,[_-ˇ]
_
및 =
이고 끝 문자는 모두 전자 기호 ß
입니다. ASCII 인코딩: /
0-9
=
코드>
< _
a-z
[=- ]
는 대문자, 백슬래시, 소문자와 일치할 수 있고 [_- ]
는 소문자만 일치할 수 있으며 둘 다 일치할 수 없습니다. 슬래시와 숫자가 일치합니다. 🎜
🎜
🎜둘째, 이렇게 이상한 정규 표현식은 유지 관리가 어렵기 때문에 작성하지 않는 것이 좋습니다. 🎜