지금은 [^ \\&<>|\t\n]+
을 사용합니다.이 문자는 공백이 아니라 \, &, <,>, |, \ t, \ n. 내가하고 싶은 일은 또한이 특수 문자를 이스케이프 할 수있게하여 \ < 또는 \ &과 같이 전체 문자열을 계속 일치시킬 수 있습니다.특수 문자 (&, , <, >, |)가 포함되지 않은 문자열을 정규식을 사용하여 백 슬래시로 처리하지 않는 경우
는 일치해야합니다 :
abcdefghijk abcdef\&hdehud\<jdow\\
이 일치하지해야 :
난 그냥 "["문자 같은 일을이 패턴 ([^\[]|(?<=\\)\[)+
을 발견 abcdefhfh&kdjeid abcdjedje\idwjdj
. 나는 이것을 추가 문자에 적용하는 방법을 알아낼 수 없었다.
백 슬래시가있는 문자의 예외를 어떻게 만들 수 있습니까?
차이가 있다면, 이것을 Flex 및 C++에서 쉘용 문자열을 토큰 화하는 데 사용하고 있습니다. 나는 부정적인 look-behinds를 사용할 필요가 있다고 믿지만 여러 문자로 어떻게해야하는지 모르겠습니다. 그래서 당신이 할 일은 다음 부정하지 않고 동일한 세트를 사용한다, 당신은 문자가 존재하지 않을 수있는에서 지정할하기 위해 부정 세트 [^ \\&<>|\t\n]
을 사용하는
:
반면에, 당신이 말하기를 "나는이 특수 문자 중 어느 것도 벗어날 수있게하고 싶습니다."라고 말하면 한편으로는 이스케이프가 필요한 것으로 보입니다. 반면에,'유효한 문자열은 : abcdefghijk abcdef \ & hdehud \'라고 말하면 공간은 이스케이프되지 않습니다. –
죄송합니다, 지금 해결! 그것들은 별도의 문자열이라고 여겨졌습니다. 문자열이있는 문자열이 아닙니다. –
https://regex101.com/r/PeFm8A/1 –