我需要一個特定的正則表達式是這樣的:具體的正則表達式測試
(\d{1,3}\/\d{1,3}\/\d{1,3})\-(.*)
例如:
1/2/3-abc
它接受:
1/2/3
- 捕獲指數1- 和
abc
- 捕獲指數2
我需要從捕獲索引1只是123
沒有'/'字符。
我嘗試了積極/消極的前瞻,但它不會工作。
非常感謝
我需要一個特定的正則表達式是這樣的:具體的正則表達式測試
(\d{1,3}\/\d{1,3}\/\d{1,3})\-(.*)
例如:
1/2/3-abc
它接受:
1/2/3
- 捕獲指數1abc
- 捕獲指數2我需要從捕獲索引1只是123
沒有'/'字符。
我嘗試了積極/消極的前瞻,但它不會工作。
非常感謝
你可以實現你需要一些字符串操作的:
var s = "1/2/3-abc";
if (s.indexOf("-") > -1) { // Check if there is a hyphen in the string
document.write(s.substring(0, s.indexOf("-")).replace(/\//g, ""));
}
的s.indexOf("-")
將找到的第一個-
字符的索引中輸入字符串,在我們從開始到-
(與s.substring(0, s.indexOf("-"))
)得到子串後,我們可以刪除/
符號與.replace(/\//g, "")
。
問題是針對JavaScript的。 :p –
今天我一直在回答Java的問題。我已經重寫了提供JS代碼的答案。 –
無法從單個匹配中提取字符。你需要捕捉整個組。之後,你可以替換你不想要的字符。
您可以使用匹配器或替換器來提取組。
function processMatcher(str) {
var match = str.match(/(\d{1,3}\/\d{1,3}\/\d{1,3})\-(.*)/);
return match[1].replace(/[\/]/g, '');
}
function processReplacer(str) {
return str.replace(/(\d{1,3}\/\d{1,3}\/\d{1,3})\-(.*)/, function(match, p1, p2, offset, string) {
return p1.replace(/[\/]/g, '');
});
}
document.body.innerHTML = 'Matcher: ' + processMatcher('1/2/3-abc') + '</br />';
document.body.innerHTML += 'Replacer: ' + processReplacer('1/2/3-abc');
不能匹配一個匹配操作中的非連續文本。在匹配你需要的之後使用'replaceAll'方法。更好 - 這裏沒有正則表達式。 –
您需要在比賽中進行字符串替換。 –