[英]Regular Expression to Match “ | ”
我試圖在它的Scanner
類上使用 Java 的useDelimiter
方法來做一些簡單的解析。 基本上每一行都是一個由“|”分隔的記錄,例如:
2 | John Doe
3 | Jane Doe
4 | Jackie Chan
該方法將要匹配的正則表達式作為參數。 可有人請我提供的正則表達式將匹配|
(兩邊用一個空格隔開的豎條)。
謝謝,我真的很感激!
我想出了\\s\\|\\s
在 Java 中將表示為"\\\\s\\\\|\\\\s"
。 我不知道這是否是最好的。 我不需要任何硬核,只需要一些有用的東西,這似乎是:)
很抱歉回答我自己的問題,我想在輸入后它幫助我思考。
這是一個解析字符串(或整個文件,Scanner 接受兩者)並從每一行中提取數字和名稱的代碼片段:
String s =
"1 | Mr John Doe\n" +
"2 | Ms Jane Doe\n" +
"3 | Jackie Chan\n";
Pattern pattern = Pattern.compile("(\\d+) \\| ((\\w|\\s)+)");
Scanner scan = new Scanner(s);
while (scan.findInLine(pattern) != null) {
MatchResult match = scan.match();
// Do whatever appropriate with the results
System.out.printf("N° %d is %s %n", Integer.valueOf(match.group(1)), match.group(2));
if (scan.hasNextLine()) {
scan.nextLine();
}
}
此代碼片段產生以下結果:
N° 1 is Mr John Doe
N° 2 is Ms Jane Doe
N° 3 is Jackie Chan
" \| "
會工作,你需要轉義引號和 |
不要忘記包含 * 以匹配重復字符
\S*\s*\|\s*[\S\t ]*
編輯 - 你也可以簡單地使用這個.*\\|.*
......
^[ \| ]?$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.