HTML 엔티티의 일부가 아닌 경우 세미콜론 주위에 공백을 추가하십시오.

조안

HTML 엔터티의 일부가 아닌 preg_replace모든 ;항목이 아직없는 경우 앞에 공백을 추가하고 (아직없는 경우) 뒤에 공백을 추가 하고 싶습니다 .

예 : : 여기에 선택 ;표시 <, 전에 공간을 추가 ;로 표시 >한 후 공간을 추가하고, ;표시 =공간 주위를 추가 할 수 있습니다. (표시 x는 무시해야합니다.)

Hello; Hello ;Hello ; Hello;Hello &egrave;Hello &egrave; Hello &egrave;;Hello&egrave; Hello &#45;Hello &#45;; Hello&#45; Hello
     <       >      x      =             x             x              x=            x           x          x<          x      

그래서 그것은되었다

Hello ; Hello ; Hello ; Hello ; Hello &egrave;Hello &egrave; Hello &egrave; ; Hello&egrave; Hello &#45;Hello &#45; ; Hello&#45; Hello

이것을 사용하여 이것을 달성하려고 시도했습니다 (주석 참조) : HTML 엔티티의 일부 이지만 동일한 방식으로 작동하지 않는 경우 세미콜론 뒤에 공백을 삽입하십시오 .

테스트 : https://regex101.com/r/xV4zA2/1

감사!

코드 자키

[특정한 경우를 고려하여 약간 변경됨]

해결되지 않은 미스터리 한 경우가 아니라면 다음과 같이해야한다고 생각합니다 .

preg_replace("/(\G|\b(?<!&|&#)\w+|[\W_]) ?; ?/", "$1 ; ", $input_lines);

그것은 변형

Hello; Hello ;Hello ; Hello;Hello &egrave;Hello &egrave; Hello &egrave;;Hello&egrave; Hello &#45;Hello &#45;; Hello&#45; Hello

으로

Hello ; Hello ; Hello ; Hello ; Hello &egrave;Hello &egrave; Hello &egrave; ; Hello&egrave; Hello &#45;Hello &#45; ; Hello&#45; Hello

... 이제 특정 엣지 케이스도 처리합니다 ...

세분화하면 정규식은 다음과 같습니다.

(               # begin capture group #1 and match:
    \G          #     [assert at beginning of match]
|               # OR match:
    \b          #     [assert a word boundary]
    (?<!        #     look behind (the word boundary) and assert that there is not:
        &|&#    #         an ampersand or an ampersand and a pound sign
    )           #     end look-behind assertion
    \w+         #     one or more of any word character ([0-9a-zA-Z_])
|               # OR match:
    [\W_]       #     a non-word character or underscore
)               # end capture group #1
 ?              # optional single space
;               # semicolon
 ?              # optional single space character

그런 다음 캡처 그룹 # 1 ( $1), 단일 공백, 세미콜론 및 단일 공백으로 대체됩니다 .

$1 ; 

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

HTML 엔티티의 끝 문자가 아닌 문자열에서 세미콜론 (;)을 표시하기 위해 PHP를 사용하는 방법은 무엇입니까?

분류에서Dev

_의 최대 개수를 세고 일부가 누락 된 경우 세미콜론을 추가합니다.

분류에서Dev

특수 문자 뒤에 세미콜론을 추가하는 URL의 경우 preg_replace

분류에서Dev

엔터티 유형 '액세스'에는 기본 키를 정의해야합니다. 키가없는 엔티티 유형을 사용하려는 경우 'HasNoKey ()'를 호출하십시오.

분류에서Dev

각 행에 대해 하나가 아닌 하나의 세이브 호출을 추진하십시오.

분류에서Dev

PHP의 DDD의 경우 루트가 아닌 집계의 엔티티에 대한 메서드를 정확히 보호하는 방법은 무엇입니까?

분류에서Dev

JPA가 rqquired가 아닌 경우에도 너무 많은 엔티티 클래스 객체를 가져옴

분류에서Dev

";"추가 (세미콜론) 시간과 파일 이름 사이의 각 공백

분류에서Dev

grep이있는 여러 pdf가있는 경우에도 wget을 위해 이미 다운로드 된 index.html에서 pdf 파일을 추출하십시오.

분류에서Dev

Anylogic은 하나가 아닌 모든 엔티티에 값을 할당합니다.

분류에서Dev

제네릭을 사용하지 않는 경우 대상 엔터티가 관계 매핑에 정의되어 있는지 확인하십시오.

분류에서Dev

SQLquery를 엔티티가 아닌 일반 객체에 매핑

분류에서Dev

regex 세미콜론 앞에! important (존재하지 않는 경우) 추가

분류에서Dev

다음 문자가 대시가 아닌 경우 단일 공백을 제외하고 문자열을 공백의 목록으로 분할합니다.

분류에서Dev

"일치하는"엔티티가 누락 된 경우 속성을 출력하지 마십시오.

분류에서Dev

x가 True가 아닌 경우 목록에 항목을 넣지 마십시오.

분류에서Dev

Datomic의 엔티티 ID 세트가 제공된 모든 엔티티 속성 및 값을 가져옵니다.

분류에서Dev

Hibernate : 주석을 추가하기 위해 엔티티 getter 재정의

분류에서Dev

내 교리 엔티티의 필드가 변경되면 다음을 실행하십시오.

분류에서Dev

이중 세미콜론 사이에 공백을 추가하는 더 나은 방법

분류에서Dev

엔티티가 이미 Symfony2의 EntityManager에 지속되었는지 확인하십시오.

분류에서Dev

pytorch : model.forward ()는 결과가 손실 함수의 일부가 아닌 경우에도 학습 프로세스에 영향을줍니다.

분류에서Dev

spring mvc의 입력 태그에 path = ""가 아닌 jstl로 html 양식을 제출하십시오.

분류에서Dev

공백이 아닌 첫 번째 문자가 문자 인 경우 줄 시작 부분에서 공백 제거 (Notepad ++)

분류에서Dev

cmake 문자열에 세미콜론 (;)을 추가하는 방법

분류에서Dev

이 할당되지 않은 공간을 우분투 파티션에 추가하십시오.

분류에서Dev

Owin OAuth 공급자 "엔티티 유형 IdentityUser가 현재 컨텍스트에 대한 모델의 일부가 아닙니다."

분류에서Dev

sed / awk : 공백이 아닌 특정 문자가 앞에 오는 경우에만 한 문자의 모든 발생을 다른 문자로 대체

분류에서Dev

여분의 공백을 제거하고 특정 기호 뒤에 공백을 추가하십시오.

Related 관련 기사

  1. 1

    HTML 엔티티의 끝 문자가 아닌 문자열에서 세미콜론 (;)을 표시하기 위해 PHP를 사용하는 방법은 무엇입니까?

  2. 2

    _의 최대 개수를 세고 일부가 누락 된 경우 세미콜론을 추가합니다.

  3. 3

    특수 문자 뒤에 세미콜론을 추가하는 URL의 경우 preg_replace

  4. 4

    엔터티 유형 '액세스'에는 기본 키를 정의해야합니다. 키가없는 엔티티 유형을 사용하려는 경우 'HasNoKey ()'를 호출하십시오.

  5. 5

    각 행에 대해 하나가 아닌 하나의 세이브 호출을 추진하십시오.

  6. 6

    PHP의 DDD의 경우 루트가 아닌 집계의 엔티티에 대한 메서드를 정확히 보호하는 방법은 무엇입니까?

  7. 7

    JPA가 rqquired가 아닌 경우에도 너무 많은 엔티티 클래스 객체를 가져옴

  8. 8

    ";"추가 (세미콜론) 시간과 파일 이름 사이의 각 공백

  9. 9

    grep이있는 여러 pdf가있는 경우에도 wget을 위해 이미 다운로드 된 index.html에서 pdf 파일을 추출하십시오.

  10. 10

    Anylogic은 하나가 아닌 모든 엔티티에 값을 할당합니다.

  11. 11

    제네릭을 사용하지 않는 경우 대상 엔터티가 관계 매핑에 정의되어 있는지 확인하십시오.

  12. 12

    SQLquery를 엔티티가 아닌 일반 객체에 매핑

  13. 13

    regex 세미콜론 앞에! important (존재하지 않는 경우) 추가

  14. 14

    다음 문자가 대시가 아닌 경우 단일 공백을 제외하고 문자열을 공백의 목록으로 분할합니다.

  15. 15

    "일치하는"엔티티가 누락 된 경우 속성을 출력하지 마십시오.

  16. 16

    x가 True가 아닌 경우 목록에 항목을 넣지 마십시오.

  17. 17

    Datomic의 엔티티 ID 세트가 제공된 모든 엔티티 속성 및 값을 가져옵니다.

  18. 18

    Hibernate : 주석을 추가하기 위해 엔티티 getter 재정의

  19. 19

    내 교리 엔티티의 필드가 변경되면 다음을 실행하십시오.

  20. 20

    이중 세미콜론 사이에 공백을 추가하는 더 나은 방법

  21. 21

    엔티티가 이미 Symfony2의 EntityManager에 지속되었는지 확인하십시오.

  22. 22

    pytorch : model.forward ()는 결과가 손실 함수의 일부가 아닌 경우에도 학습 프로세스에 영향을줍니다.

  23. 23

    spring mvc의 입력 태그에 path = ""가 아닌 jstl로 html 양식을 제출하십시오.

  24. 24

    공백이 아닌 첫 번째 문자가 문자 인 경우 줄 시작 부분에서 공백 제거 (Notepad ++)

  25. 25

    cmake 문자열에 세미콜론 (;)을 추가하는 방법

  26. 26

    이 할당되지 않은 공간을 우분투 파티션에 추가하십시오.

  27. 27

    Owin OAuth 공급자 "엔티티 유형 IdentityUser가 현재 컨텍스트에 대한 모델의 일부가 아닙니다."

  28. 28

    sed / awk : 공백이 아닌 특정 문자가 앞에 오는 경우에만 한 문자의 모든 발생을 다른 문자로 대체

  29. 29

    여분의 공백을 제거하고 특정 기호 뒤에 공백을 추가하십시오.

뜨겁다태그

보관