簡體   English   中英

正則表達式以匹配以點開頭和結尾的字符串

[英]Regex to match a string that starts and ends with a dot

我需要一個正則表達式來匹配以點開頭和點結尾的字符串。

我的嘗試:

let sr = /^\.+\.$/g.test('.some.')
console.log(sr)

我想念什么?

您缺少一個點:

let sr = /^\..+\.$/g.test('.some.')

尚不清楚您進行比賽的標准是什么,但是以下是一種解釋:

 let sr = /^\\.[^.]+\\.$/g.test('.some.'); console.log(sr); 

如果您可以提供關於如何知道以點開頭的序列無效的邏輯,則可以更新模式。 例如,在文本中Mr. Bean goes to Hollywood. ,您可能不想在兩個點之間進行匹配。 在這種情況下,我們可以將代碼修改為如下形式:

let sr = /^\.[A-Za-z0-9]]+\.$/g.test('.some.');
console.log(sr);

這將僅允許在兩個候選點之間使用字母和數字。

直到我從您的問題中了解了。 有兩種方法1)如果要查找以點開頭和結尾的字符串。

[\\。]。*?[\\。]

2)如果要在點之間查找字符串。

(?<= \\。)(。*?)(?= \\。)

您的正則表達式^\\.+\\.$匹配一個或多個點,並在字符串末尾匹配一個點。 在匹配第一個點和最后一個點之間,您可以添加要匹配的內容,然后使用量詞+代替第一個點重復一次或多次。 例如,僅匹配單詞字符^\\.+\\w+\\.$

檢查字符串的第一個和最后一個字符的非正則表達式方法可能是:

 const strings = [ '.some test.', '.', '..', '.some.', 'some' ]; strings.forEach((str) => { if (str.length > 2 && str[0] === '.' && str[str.length - 1] === '.') { console.log("Matched: " + str); } }); 

暫無
暫無

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

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