[英]Java Split RegEx not working
我在 java 中的一個非常簡單的任務中遇到了很多困難。 首先,我想將字符串拆分為數組,單獨使用每個字母並使用正則表達式(這很重要,因為我將在此之后將其升級為更復雜的正則表達式,但我首先需要運行這個簡單的)
Stringbase = "artetbewrewcwewfd";
String arr2[] = base.split("\\.");
為什么我不能這樣做?
String base = "artetbewrewcwewfd";
String arr2[] = base.split("\\[abcdefghijklmnopqrstuvwxyz]");
甚至也不像這樣。
感謝您的時間
請注意\\\\.
(轉義點)在您的第一個正則表達式中匹配一個文字點字符(並且您的字符串沒有點,因此, split
返回整個字符串)。
第二"\\\\[abcdefghijklmnopqrstuvwxyz]"
模式相匹配的序列[abcdefghijklmnopqrstuvwxyz]
因為你通過轉義第一毀字符類構建體[
(和逃脫[
相匹配的文字[
,從而,閉合]
也將被視為一個文字符號,而不是特殊的構造字符)。
要在字符串中的每個字符之前拆分,您可以使用
String arr2[] = "artetbew42rewcwewfd".split("(?!^)(?=.)");
System.out.println(Arrays.toString(arr2));
// => [a, r, t, e, t, b, e, w, 4, 2, r, e, w, c, w, e, w, f, d]
在這里, (?!^)
在字符串的最開始匹配失敗(以免將空格作為第一個元素返回),並且(?=.)
是在除換行符之外的任何字符之前匹配的正向前瞻。
如果您也想在換行符之前匹配,請使用Pattern.DOTALL
標志,或在模式之前添加(?s)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.