[英]Regex capture character set but not some specific characters
Javascript正則表達式
我想捕獲此集合中的所有字符
([-A-Z0-9+&@#\/%=~._|\?]{2,})
但我不想結束~~
||
##
被捕獲。
例如:
It@was@022342@whate@~f56@|fdsdfw&~~
應該導致
It@was@022342@whate@~f56@|fdsdfw&
你去了:
re = /([-A-Z0-9+&@#\/%=~._|\?]{2,}?)(?:(~~|##|\|\|)+)/i
工作示例:
re = /([-A-Z0-9+&@#\\/%=~._|\\?]{2,}?)(?:(~~|##|\\|\\|)+)/i str = "It@was@022342@whate@~f56@|fdsdfw&~~" console.log(str.match(re)[1]) str = "It@was@022342@whate@~f56@|fdsdfw&##" console.log(str.match(re)[1]) str = "It@was@022342@whate@~f56@|fdsdfw&||" console.log(str.match(re)[1]) str = "It@was@022342@whate@~f56@|fdsdfw&||##" console.log(str.match(re)[1]) str = "It@was@022342@whate@~f56@|fdsdfw&##||" console.log(str.match(re)[1])
可能有一種更聰明的方法來執行此操作,但這是一個非常簡單的方法:
([-A-Za-z0-9+&@#\\/%=~._|\\?]{2,}?)(?:~~|\\|\\||##)?$
截至上述評論,我想您要刪除~~
||
##
從字符串str
,您可以像這樣簡單地進行操作:
str.replace(/(~~|\|\||##)/g, "");
或者,如果您只想從字符串的末尾刪除
str.replace(/(~~|\|\||##)+$/, "");
這是你想要的?
str.replace(/[\|#~]*$/,'');
例如:
var str = "It@was@022342@whate@~f56@|fdsdfw&~~";
str.replace(/[\|#~]*$/,'');
"It@was@022342@whate@~f56@|fdsdfw&"
如果~
, #
和|
任意組合,也可以使用 在末尾
var str = "It@was@022342@whate@~f56@|fdsdfw&~#|"
str.replace(/[\|#~]*$/,'');
"It@was@022342@whate@~f56@|fdsdfw&"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.