私はこの正規表現の構文を持っているためにPHPとPythonで働く正規表現構文翻訳: "(?< = [-Z]) - (?= [-Z])"JS
をそれは2つの小文字の間にダッシュをキャプチャします。以下の例では、2番目のダッシュがキャプチャされます。
Krynica-Zdrój、ul Uzdro-jowa
残念ながら私は< = JSで使用できません。 私の究極の目標は、RegExを置き換えてハイフンを削除することです。
私はこの正規表現の構文を持っているためにPHPとPythonで働く正規表現構文翻訳: "(?< = [-Z]) - (?= [-Z])"JS
をそれは2つの小文字の間にダッシュをキャプチャします。以下の例では、2番目のダッシュがキャプチャされます。
Krynica-Zdrój、ul Uzdro-jowa
残念ながら私は< = JSで使用できません。 私の究極の目標は、RegExを置き換えてハイフンを削除することです。
小文字の間でハイフンを削除する必要があるようです。
使用
var s = "Krynica-Zdrój, ul. Uzdro-jowa";
var res = s.replace(/([a-z])-(?=[a-z])/g, "$1");
console.log(res);
最初後読みは、単純なキャプチャグループになっている第二先読みがあるため使用することがOKであることに注意してください - 潜在的に、ハイフン単一小文字のチャンクがある場合 - 重複するマッチに対処することができます。
詳細:
([a-z])
- ハイフン(?=[a-z])
- - 結果に追加されていない小文字のASCII文字で続いている小文字のASCII文字-
をキャプチャグループ1 - /g
- グローバルモディファイア、パターンのすべての出現を検索する"$1"
- グループ1のバッファに格納されている値の逆参照のみを含む置換パターン。VBAサンプルコード:
Sub RemoveExtraHyphens()
Dim s As String
Dim reg As New regexp
reg.pattern = "([a-z])-(?=[a-z])"
reg.Global = True
s = "Krynica-Zdroj, ul. Uzdro-jowa"
Debug.Print reg.Replace(s, "$1")
End Sub
私は/([a-z]) - (?= [a-z])/ gを試して、私の例では "o-"を返します。 –
*あなたの*例はどこですか?シェアしてください。 * mine *を使用すると、うまく動作することがわかります。 –
私の例はKrynica-Zdrój、ulです。 Uzdro-jowa、https://regex101.com/#javascriptで/([az]) - (?= [az])/ gをチェックしましたが、何か分かりませんので、 JS RegEx構文を使用するVBAで使用するパターンが必要です。 –
私は、このハイフンを取り除くために置き換える使用したいです。 –
/b- \ b/gについて、両方のハイフンを返します。 2番目のパターンについては、何も検出しないで変更することなく、それを動作させる方法がわかりません。 –
はい、私は以下の解決策を提供しました。私の最初のコメントを削除させてください。 –