모든 단어에서 처음 나타나는 문자를 바꾸려면 어떻게해야합니까?
이 문자열이 있다고 가정 해보십시오.
hello @jon i am @@here or @@@there and want some@thing in '@here"
# ^ ^^ ^^^ ^ ^
그리고 @
모든 단어 에서 첫 번째 단어 를 제거하여 다음과 같은 최종 문자열을 갖습니다.
hello jon i am @here or @@there and want something in 'here
# ^ ^ ^^ ^ ^
명확하게하기 위해 "@"문자는 항상 모든 단어에 함께 표시되지만 단어의 시작 부분이나 다른 문자 사이에있을 수 있습니다.
"@"문자 가 한 번 발생할 때 Delete 하위 문자열 에서 찾은 정규 표현식의 변형을 사용하여 한 번만 발생하면 python 에서 행이 두 번이 아닌 "@"문자를 제거 했습니다 .
@(?!@)(?<!@@)
출력을보십시오 :
>>> s = "hello @jon i am @@here or @@@there and want some@thing in '@here"
>>> re.sub(r'@(?!@)(?<!@@)', '', s)
"hello jon i am @@here or @@@there and want something in 'here"
따라서 다음 단계는 "@"이 두 번 이상 발생할 때 바꾸는 것입니다. s.replace('@@', '@')
"@"가 다시 발생 하는 위치 에서 제거하면 쉽게 수행 할 수 있습니다.
그러나 나는 한 번 에이 교체를 수행 할 수있는 방법이 있습니까?
@Hello@There
경우 @
연속되지 않을 것?