javascript - 正则表达式 如何根据某个条件是否成立,来选择匹配 2 个可选表达式中的其中一个。
场景:
原先有一个字符串的内容匹配,现在这个字符串改成了另一种样子。但是对于已经发版的客户端还要支持旧版的字符串匹配。
例:
旧字符串: android/360 1.0
新字符串: android/aaa/360/1.0
现在想写一个正则表达式,既想能匹配旧字符串,也想匹配新字符串。
有没有办法根据某个条件成立,来选择其中一种表达式?
旧表达式匹配正则:
([iOS|android])\\scoco/([\\S\\s])\\s([\\S]*)
旧正则测试字符串
android coco/360 1.0
新表达式匹配正则:
"([iOS|android])[\\s|\\S]coco/([\\S])/([\\S])/([\\S])/([0-9])";
新正则测试字符串:
android coco/android_deviceId/360/1.0/123456
如何让一个正则,既可以支持新的,也可以支持旧的?
<code>([iOS|android]*)[\\s|\\S]coco/[([\\S\\s]*)\\s([\\S]*)] `**|**` [([\\S]*)/([\\S]*)/([\\S]*)/([0-9])] </code>
类似于上面这个错误的正则思路。 该如何写?
回复内容:
场景:
原先有一个字符串的内容匹配,现在这个字符串改成了另一种样子。但是对于已经发版的客户端还要支持旧版的字符串匹配。
例:
旧字符串: android/360 1.0
新字符串: android/aaa/360/1.0
现在想写一个正则表达式,既想能匹配旧字符串,也想匹配新字符串。
有没有办法根据某个条件成立,来选择其中一种表达式?
旧表达式匹配正则:
([iOS|android])\\scoco/([\\S\\s])\\s([\\S]*)
旧正则测试字符串
android coco/360 1.0
新表达式匹配正则:
"([iOS|android])[\\s|\\S]coco/([\\S])/([\\S])/([\\S])/([0-9])";
新正则测试字符串:
android coco/android_deviceId/360/1.0/123456
如何让一个正则,既可以支持新的,也可以支持旧的?
<code>([iOS|android]*)[\\s|\\S]coco/[([\\S\\s]*)\\s([\\S]*)] `**|**` [([\\S]*)/([\\S]*)/([\\S]*)/([0-9])] </code>
类似于上面这个错误的正则思路。 该如何写?
你这样两个字符串差别已经很大了,就没有必要压缩到一个正则里了,直接分成两次正则判断更为妥当。
正则里没有根据条件来选择匹配规则的定义,像你这种情况用的还是 |
进行或匹配而已。其效果和使用两次正则没什么区别。
最暴力的解决方案:用“或”(|
)
优雅一些的方案:提取两个要匹配字符串的公有特点,写新的正则表达式兼容

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

AI는 작곡가 사용을 최적화하는 데 도움이 될 수 있습니다. 특정 방법에는 다음이 포함됩니다. 1. 종속성 관리 최적화 : AI는 종속성을 분석하고 최상의 버전 조합을 권장하며 충돌을 줄입니다. 2. 자동화 된 코드 생성 : AI는 모범 사례를 준수하는 composer.json 파일을 생성합니다. 3. 코드 품질 향상 : AI는 잠재적 인 문제를 감지하고 최적화 제안을 제공하며 코드 품질을 향상시킵니다. 이러한 방법은 기계 학습 및 자연어 처리 기술을 통해 구현되어 개발자가 효율성과 코드 품질을 향상시킬 수 있도록 도와줍니다.

Python 및 JavaScript의 미래 추세에는 다음이 포함됩니다. 1. Python은 과학 컴퓨팅 분야에서의 위치를 통합하고 AI, 2. JavaScript는 웹 기술의 개발을 촉진하고, 3. 교차 플랫폼 개발이 핫한 주제가되고 4. 성능 최적화가 중점을 둘 것입니다. 둘 다 해당 분야에서 응용 프로그램 시나리오를 계속 확장하고 성능이 더 많은 혁신을 일으킬 것입니다.

session_start () iscrucialinphpformanagingUsersessions.1) itiniteSanewsessionifnoneexists, 2) ResumesAnxistessions, and3) setSasessionCookieForContInuityAcrosrequests, enablingplicationsirecationSerauthenticationAndpersonalizestContent.

교환의 내장 양자화 도구에는 다음이 포함됩니다. 1. Binance : Binance 선물 정량 모듈, 낮은 취급 수수료 및 AI 지원 거래를 지원합니다. 2. OKX (OUYI) : 다중 계정 관리 및 지능형 주문 라우팅을 지원하고 기관 수준의 위험 관리를 제공합니다. 독립적 인 정량적 전략 플랫폼에는 다음이 포함됩니다. 4. Quadency : 맞춤형 위험 임계 값을 지원하는 전문 수준 알고리즘 전략 라이브러리. 5. Pionex : 내장 16 사전 설정 전략, 낮은 거래 수수료. 수직 도메인 도구에는 다음이 포함됩니다. 6. Cryptohopper : 클라우드 기반 정량 플랫폼, 150 개의 기술 지표를 지원합니다. 7. BITSGAP :

HTML5는 5 가지 주요 개선 사항을 제공합니다. 1. 시맨틱 태그는 코드 선명도 및 SEO 효과를 향상시킵니다. 2. 멀티미디어 지원은 비디오 및 오디오 임베딩을 단순화합니다. 3. 형태 향상은 검증을 단순화한다. 4. 오프라인 및 로컬 스토리지는 사용자 경험을 향상시킵니다. 5. 캔버스 및 그래픽 기능은 웹 페이지의 시각화를 향상시킵니다.

MySQL 기능은 데이터 처리 및 계산에 사용될 수 있습니다. 1. 기본 사용에는 문자열 처리, 날짜 계산 및 수학 연산이 포함됩니다. 2. 고급 사용에는 복잡한 작업을 구현하기 위해 여러 기능을 결합하는 것이 포함됩니다. 3. 성능 최적화를 위해서는 WHERE 절에서 기능 사용 및 GroupBy 및 임시 테이블 사용을 피해야합니다.

Composer는 PHP의 종속성 관리 도구이며 Composer.json 파일을 통해 프로젝트 종속성을 관리합니다. 1) 종속성 정보를 얻기 위해 Composer.json을 구문 분석합니다. 2) 종속성 트리를 형성하기위한 종속성; 3) Packagist에서 공급 업체 디렉토리로 종속성을 다운로드하여 설치합니다. 4) Composer.Lock 파일을 생성하여 팀 일관성 및 프로젝트 유지 관리 가능성을 보장하기 위해 종속성 버전을 잠그십시오.

MySQL에서 문자 세트 및 콜라주를 구성하는 방법은 다음과 같습니다. 1. 서버 수준에서 문자 세트 및 콜라주 설정 : setNames'Utf8 '; setcharactersetutf8; setCollation_connection = 'utf8_general_ci'; 2. 특정 문자 세트 및 콜라주를 사용하는 데이터베이스를 만듭니다. createAbaseexample_DBCHARACTERSETUTF8COLLATEUTF8_GENERAL_CI; 3. 테이블을 만들 때 문자 세트 및 콜라주를 지정하십시오 : CreateTableAmplipt_table (idint
