[英]JAVA regular expression with space
我的以下表達式有問題:
String REGEX_Miasto_Dwu_Czlonowe="\D+\s\D+";
Pattern pat_Miasto = Pattern.compile(REGEX_Miasto_Dwu_Czlonowe);
Matcher mat_Miasto_Dwu_Czlonowe = pat_Miasto.matcher(adres);
因為上面的模式匹配
"80-227 GDAŃSK DOSTUDZIENKI 666";
"83000 PRUSZCZ GDANSKI UL. TYSIACLECIA 666";
但是它只能匹配以下表達式: "PRUSZCZ GDANSKI UL. TYSIACLECIA 666";
THX尋求幫助。
您在正則表達式中遇到了一些問題。
\\ D匹配非數字。 這是您的意圖嗎?
\\ D + \\ s \\ D +
因此,您要匹配一些非數字,后跟一個空格,再匹配一些非數字 。
我認為您的表情匹配或多或少是偶然的。
這可能是您的正則表達式的解決方案:
^\d+\D+\d+$
如果要將第二行作為文字匹配,那么只有此行匹配,您可以使用:
Matcher.quoteReplacement(String s)
用一個簡單的String構建這種表達式。 所有控制字符均已轉義。
您的正則表達式匹配任意數量的非數字\\D+
空格\\s
然后匹配任意數量的非數字。 因此它匹配第一個字符串:
80-227 GDAŃSK DOSTUDZIENKI 666
// ^__________\D+_________^^____________\D+_________^
// |
// a space
我想你要:
[^\s\d]+\s[^\s\d]+
任意數量的非空格/非數字,然后為空格的任意數量的非空格/非數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.