के साथ दो वर्णों के बीच अंतर को भरने के लिए मेरे पास डेटा जैसा सेट है। वांछित.result में दिखाए गए अनुसार, मैं दो बिंदुओं के बीच 1 के बीच सभी बिंदुओं को प्रतिस्थापित करना चाहता हूं। क्या मैं आधार पर regex
के साथ ऐसा कर सकता हूं?regex
मैंने कोशिश की:
regexpr("^1\\.1$", my.data$my.string, perl = TRUE)
यहाँ C#
Characters between two exact characters
किसी भी सुझाव के लिए धन्यवाद में एक समाधान है।
my.data <- read.table(text='
my.string state
................1...............1. A
......1..........................1 A
.............1.....2.............. B
......1.................1...2..... B
....1....2........................ B
1...2............................. C
..........1....................1.. C
.1............................1... C
.................1...........1.... C
........1....2.................... C
......1........................1.. C
....1....1...2.................... D
......1....................1...... D
.................1...2............ D
', header = TRUE, na.strings = 'NA', stringsAsFactors = FALSE)
desired.result <- read.table(text='
my.string state
................11111111111111111. A
......1111111111111111111111111111 A
.............1.....2.............. B
......1111111111111111111...2..... B
....1....2........................ B
1...2............................. C
..........1111111111111111111111.. C
.111111111111111111111111111111... C
.................1111111111111.... C
........1....2.................... C
......11111111111111111111111111.. C
....111111...2.................... D
......1111111111111111111111...... D
.................1...2............ D
', header = TRUE, na.strings = 'NA', stringsAsFactors = FALSE)
यह पैटर्न है कि होता था 'regexpr' के साथ एक और अधिक उपयोगी परिणाम दिया है:' "1 \\। * 1" '। '^' और '$' केवल मैचों की अनुमति देगा यदि 1 स्ट्रिंग के दोनों सिरों पर थे (और क्वांटिफ़ायर की कमी केवल स्ट्रिंग से केवल 1 अवधि के साथ मेल खाती है।) –
अपेक्षित परिणाम क्या है जब चार (या अधिक) 1 एक ही पंक्ति पर हैं (यानी '..1 ... 1 ... 1 ... 1..')? '..11111 ... 11111..' या' ..1111111111111..'? –