<code>preg_replace("/([&?]uid=)[^?&]*/",'$1173','http://localhost/mobile/index.php?c=wish&uid=181') //输出:http://localhost/mobile/index.php?c=wish73 </code>
如上面$replacement ($1173)
表示的,php以为我要把$11
加上73
,但其实我是想让 $1
加上173
,请问怎样改才能符合我的预期?
刚刚在写问题的时候突然想到把
$replacement
改成$01
说不定可以,没想到真可以了,现在是这样'$01173'
另外,同样的$replacement($1173)
放到js里表现的结果却是我预期的,那js里想要$11
加上73
怎么办?
回复内容:
<code>preg_replace("/([&?]uid=)[^?&]*/",'$1173','http://localhost/mobile/index.php?c=wish&uid=181') //输出:http://localhost/mobile/index.php?c=wish73 </code>
如上面$replacement ($1173)
表示的,php以为我要把$11
加上73
,但其实我是想让 $1
加上173
,请问怎样改才能符合我的预期?
刚刚在写问题的时候突然想到把
$replacement
改成$01
说不定可以,没想到真可以了,现在是这样'$01173'
另外,同样的$replacement($1173)
放到js里表现的结果却是我预期的,那js里想要$11
加上73
怎么办?
试试$01173
?
JS只是比较智能一点,它发现你的正则里面没有11个分组,所以会把$1173
拆分为$1
和173
两个部分。但是当分组数量达到11个以上时它也就会以能够匹配到的最大的分组来替换了,比如:
'abcdefffgg'.replace(/(f+)fgg/, '$1173'); // abcdeff173,(替换的是第1个分组,ff) 'abcdefffgg'.replace( /(f+)(a?)(a?)(a?)(a?)(a?)(a?)(a?)(a?)(a?)(fgg)/, '$1173'); // abcdefgg73(替换的是第11个分组,fgg)
要想在上面的第二个例子里替换第一个分组,可以用$01173
,由于分组最大只能到99,而01
已经满了2位数,所以JS不会再去尝试检查第三位数。你可以在PHP里试试这种方法,我没测试,不知道可不可行。
至于你说的,想让JS在不足11个分组的时候匹配$11
应该是做不到的。
在replace第二个参数里面$实际上是告诉正则表达式引擎,接下来的是一个反向引用(有的语言或工具里面也用\标识),是对正则表达式中匹配出来的组的引用,在你的例子里面就是 ([&?]uid=)
所匹配出来的内容。
我对PHP不是很熟。
回答你的javascript的问题,在js里面$1代表的第一个被匹配到的group。所以结果是正确。
如果你想要$11
这个字符串的加上73
的话,用这个就可以了$$1173
详细说明可参照这里:http://deerchao.net/tutorials/regex/regex.htm#backreference

이 기사는 PHP의 인터페이스를 생성, 구현 및 사용하는 방법을 설명하여 코드 구성 및 유지 관리에 대한 이점에 중점을 둡니다.

이 기사에서는 PHP의 암호 해싱에 대한 Crypt ()와 Password_hash ()의 차이점에 대해 논의하여 최신 웹 애플리케이션에 대한 구현, 보안 및 적합성에 중점을 둡니다.

기사는 입력 유효성 검사, 출력 인코딩 및 OWASP ESAPI 및 HTML 청정기와 같은 도구를 통해 PHP의 크로스 사이트 스크립팅 (XSS) 방지에 대해 논의합니다.

PHP의 자동로드는 필요할 때 클래스 파일을 자동으로로드하여 메모리 사용을 줄이고 코드 구성을 향상시켜 성능을 향상시킵니다. 모범 사례에는 PSR-4 사용 및 효과적으로 코드 구성이 포함됩니다.

PHP 스트림은 일관된 API를 통해 파일, 네트워크 소켓 및 압축 형식과 같은 자원의 처리를 통합하여 복잡성을 추상화하고 코드 유연성 및 효율성을 향상시킵니다.

이 기사에서는 PHP의 파일 업로드 크기 관리, 기본 제한 2MB 및 php.ini 설정을 수정하여이를 늘리는 방법에 중점을 둔 파일 업로드 크기 관리에 대해 설명합니다.

이 기사에서는 PHP 7.1에 도입 된 PHP의 무효 유형에 대해 설명하여 변수 또는 매개 변수가 지정된 유형 또는 널이 될 수 있습니다. 개선 된 가독성, 유형 안전 및 명시 적 의도와 같은 이점을 강조하고 선언하는 방법을 설명합니다.

이 기사에서는 Unset ()와 Unlink () 기능의 차이점에 대해 설명합니다. 프로그래밍의 목적 및 사용 사례에 중점을 둡니다. unset ()는 메모리에서 변수를 제거하고 Unlink ()는 파일 시스템에서 파일을 삭제합니다. 둘 다 Effec에 중요합니다


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
