簡體   English   中英

Javascript:正則表達式捕獲空格和特殊字符除了單詞內的連字符

[英]Javascript: Regex to capture white space and special characters EXCEPT hyphens within words

目前正在使用/[\\W]+/g獲取所有非單詞字符,這就是我想要的。

但是,當它們沒有被空格包圍時(即,當它們被用作連接詞時),我想省略連字符。

例子:

 var test = [
    'e-mail', // Nothing  shouldn't be captured
    'e-commerce is great.', // Spaces and full stop should be captured
    'He - yes he - went', // Dashes and white space should be captured
    'He&-you, me-him' // &-, and the whitespace should be captured while the dash in me-him should not
    ]

嘗試使用([\\W]-|-[\\W]|[^\\w-])+

正則表達式中的否定是繁瑣的,通常你必須使用前瞻來解決問題,但這里有一個簡單的修復。 我沒有匹配所有非單詞字符( [\\W] ),而是匹配任何不是單詞字符或連字符( [^\\w-] )的東西,然后在特殊情況下添加連字符未被包圍的情況按字符( [\\W]--[\\W] )。 我必須先將連字符捕獲,否則非單詞,非連字符捕獲將匹配兩個空格或特殊字符,下一部分將無法獲取連字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM