[英]regex: Match when between text but not between digits
請幫忙。 我需要一個正則表達式(在javascript中使用)替換“。” 在包含Unicode字符的文本中使用“#”。 僅當“。”時才進行替換。 出現在文本之間,但不在數字之間。
輸入: “ΦΨ。ABC。DEF。123.456”
所需的輸出: “ΦΨ#ABC#DEF#123.456”
有什么建議么?
您可以在正則表達式中使用捕獲組並使用向后引用來獲得所需的結果:
var re = /(\\D)\\.(\\D)/g; var str = 'ΦΨ. ABC. DEF. 123.456'; var subst = '$1#$2'; result = str.replace(re, subst); alert(result);
正則表達式說明:
\\D
一個非數字字符 \\.
-文字點 非數字字符被分成幾組,然后在$1
和$2
反向引用的幫助下插入。
嘗試這個:
var str = "ΦΨ. ABC. DEF. 123.456";
str.replace(/[^\d.]+\.[^\d]/g, function (m) {
return m.replace('.', '#')
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.