簡體   English   中英

正則表達式匹配最后一個空格字符

[英]Regex to match last space character

我需要協助。 我正在尋找一個匹配字符串中最后一個空格字符的正則表達式。 我使用的是JavaScript和經典的ASP。

我有一長串文字,我修剪為100個字符。 我想刪除最后一個字符以避免拼寫錯誤,如果修剪由於100個字符限制而剪切一個單詞。

regex.replace(/[ ]$.*?/ig, '');

有想法的人嗎? 謝謝。

根據我的理解,你需要刪除最后一個空格及其后的所有內容,對吧?

 str = str.replace(/\s+\S*$/, "")

嘗試一個先行斷言

/ (?=[^ ]*$)/

對於任意空白字符:

/\s(?=\S*$)/

那就是

/ +$/

空間角色( ),至少一次( + ),在行的末尾( $

請注意,將空格放在字符類中是不必要的,除非您想匹配多個空格字符,例如制表符[\\t ]

要真正匹配單個最后一個空格 ,請使用/ $/


編輯 :在最后一個空間之后切斷所有東西(想一想,這實際上是你想要的,你可以使用:

regex.replace(/ +\S*$/ig, '');

正則表達式的意思是:“至少一個空格,以及它后面的任何非空格字符( \\S* ),在行的末尾( $ )。”

這只能匹配最后一個空格后一行的最后一位。 作為副作用,字符串在末尾被修剪。

正則表達式/^.+ [^ ]*$/將僅匹配一行的最后一個空格。

使用“經典”RE,您想要的是" [^ ]*$" - 即空格字符后跟任意數量的非空格字符,后跟行尾。 “非空格字符”可能會或可能不適合您對“單詞”的定義 - 例如,它也會阻止您在中間剪切數字。 如果要將“單詞”限制為包含字母,可以使用: " [^A-Za-z]*$"

另請注意,無論哪種方式,如果一個單詞恰好以第100個字符結尾,這將匹配它之前的空格,因此您將刪除最后一個單詞。 如果你想防止這種情況,你(可能)想要查看你剪掉的第一個字符,如果它是空格,不要從緩沖區中刪除任何內容。

暫無
暫無

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

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