RegExp는 여러 www를 제외하고 문자열에서 링크를 가져옵니다.
Nov 29 2020
문자열에서 다음과 같은 링크를 얻으려고 할 때
"안녕하세요 세상 https://www.sample.com/voices/2020/my-sound-www.sample.com"
여러 링크가 있기 때문에 여기에서 여러 링크를 얻습니다 www
. 어떻게 제외 할 수 있습니까?
산출:
- https://www.sample.com/voices/2020/my-sound-www.sample.com
- www.sample.com
이 출력은 올바르지 않으며 두 링크가 아닌 하나의 링크 여야합니다.
https://www.sample.com/voices/2020/my-sound-www.sample.com
내 정규식 패턴 :
r"((https?:www\.)|(https?:\/\/)|(www\.))[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9]{1,6}(\/[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)?"
답변
1 WiktorStribiżew Nov 30 2020 at 05:04
당신이 사용할 수있는
final reg = RegExp(r'(?:https?:(?:\\?\/\\?\/|www\.)|www\.)[^\s<>"'']*\.mp3');
final m = reg.firstMatch(test);
print(m.group(0));
// => https://www.caferilik.com/wp-content/uploads/2020/11/Anne-Baba-Biz-Suçluyuz-Muhafazakar-Ailelerde-Kuşak-Çatışması-Sesli-Kitap-www.caferilik.com_.mp3
여기서 패턴은
(?:https?:(?:\\?\/\\?\/|www\.)|www\.)[^\s<>"']*\.mp3
참고 항목 정규식 데모
세부 사항 :
(?:https?:(?:\\?\/\\?\/|www\.)|www\.)
-http
선택 사양에 따라s
다음 문자:
중 하나를 다음//
옵션으로\
각각 이전/
또는www.
단지 또는www.
[^\s<>"']*
- 공백 이외의 0 개 이상의 문자,<
,>
,"
및'
\.mp3
-.mp3
문자열.