は、私は、文字列「これは少年とととと女の子またはbiscutとペンである」を持っている私は、単一のand
によって、これらすべてのand
Sを交換したいと思います。 Regexを使ってこれを行うことはできますか?regexを使用して文中で隣接して「と」を繰り返し検索していますか?
私は、この正規表現を使用していたが、それは失敗します。@"(\band\s+){2,}"
(ただし未テスト):多分このような
@"\b(?<word>\w+)\s+(\k<word>)\b"
は、私は、文字列「これは少年とととと女の子またはbiscutとペンである」を持っている私は、単一のand
によって、これらすべてのand
Sを交換したいと思います。 Regexを使ってこれを行うことはできますか?regexを使用して文中で隣接して「と」を繰り返し検索していますか?
私は、この正規表現を使用していたが、それは失敗します。@"(\band\s+){2,}"
(ただし未テスト):多分このような
@"\b(?<word>\w+)\s+(\k<word>)\b"
Regex.Replace(text, @"(\band\s+)+", "and ");
何かを。とにかく検索/置換しているので、@"(\band\s+)+"
。
(あなたのポストで正規表現が示唆するように)あなたは、一般的に繰り返される単語を意味している場合:
resultString = Regex.Replace(subjectString, @"\b(\w+)(?:\s+\1)+\b", "$1");
説明:それは唯一のand
なら
\b # Assert start at a word boundary
(\w+) # Match a word
(?: # Try to match...
\s+ # Whitespace and
\1 # the same word as before
)+ # one or more times
\b # Assert end at a word boundary
を置き換えたい:
resultString = Regex.Replace(subjectString, @"\b(?:and\s+){2,}", "and ");
一般的ではありません。RegExを壊すために「and」のみをチェックしてください。 –
+1。彼らと多くの経験を持っていない人々に役立ちます。 – Tim
あなたの正規表現は、同じ単語(任意の単語)の正確に2つの出現を置き換えるのに正しいです。しかし '\ k 'の括弧は不要です。 –