[英]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.