我目前正在尝试将字符串拼接成多行字符串。正则表达式应选择前面有 13 个字符的空格。
问题在于,13个字符的计数在前一个选定的空白之后不会重置。因此,在前13个字符之后,正则表达式选择每个空白。
我使用以下正则表达式,其正面后向为
13 个字符:
(?<=.{13})
(结尾有一个空格)
您可以在这里测试正则表达式和以下代码:
import java.util.ArrayList;
public class HelloWorld{
public static void main(String []args){
String str = "This is a test. The app should break this string in substring on whitespaces after 13 characters";
for (String string : str.split("(?<=.{13}) ")) {
System.out.println(string);
}
}
}
此代码的输出如下所示:
这是个测试。
应用
应在
13
个字符后的空格上以子字符串分隔此字符串
但应该是:
这是一个测试。
应用程序应该
在
13个字符之后的
空格上的子字符串中打破此字符串
您可以使用。拆分并使用正则表达式来做到这一点。就像这样
line.split("\\s+");
这将溢出每个单词一个或多个空格。
您可以只匹配和捕捉空格前的13个字符,而不是拆分。
Java 代码:
Pattern p = Pattern.compile( "(.{13}) +" );
Matcher m = p.matcher( text );
List<String> matches = new ArrayList<>();
while(m.find()) {
matches.add(m.group(1));
}
它将产生:
This is a test.
The app should
break this string
in substring on
whitespaces after
13 characters
正则表达式演示
您实际上可以使用惰性限制量词来匹配行,然后替换为0美元\n
:
.{13,}?[ ]
查看regex演示
迪欧恩演示:
String str = "This is a test. The app should break this string in substring on whitespaces after 13 characters";
System.out.println(str.replaceAll(".{13,}?[ ]", "$0\n"));
请注意,模式匹配:
.{13,}?
- 任何不是换行符的字符(如果你需要匹配任何字符,请使用DOTALL修饰符,尽管我怀疑你在当前情况下需要它),至少13次,它可以匹配更多的字符,但直到遇到的第一个空格[ ]
- 一个文字空格(字符类是多余的,但它有助于可视化模式)。替换模式-"0美元\n"
-正在重新插入整个匹配值(它存储在组0中)并在它之后附加一个换行符。
问题内容: 因此,stdin将一串文本返回到列表中,并且多行文本都是列表元素。您如何将它们全部分割成一个单词? 想要的输出: 问题答案: 您可以使用简单的列表推导,例如: 这将产生:
我有一个输入字符串像: 拆分后,我应该得到: 输出 规则: 格式类似于 值可以有除空格以外的任何特殊字符。 值可以有空格,如果在引号例如。或 我写了正则表达式,但引号内的引号搞砸了: 此外,我还尝试在上解析字符或拆分,但我面临着歧义,因为它们也可能在引号内。
问题内容: 我想将字符串拆分为单个字符。所以我做: 但这产生了: 在其他语言(例如Ruby)中执行相同操作时,我不习惯使用第一个空字符串。它背后的逻辑是什么? 问题答案: 你为什么要用这个?使用可能会更好。 我知道一个会返回一个字符串数组,而另一个会给您一个字符数组。由于您希望分别使用每个字符,因此我假设这与您的代码无关。
现在假设用户enterd AAA-222 结果将是 ps.拆分的部分应该包括空格。
问题内容: 什么正则表达式模式需要我传递给 拆分成字符串使用的所有空格字符(子字符串数组,等)作为分隔符? 问题答案: 某些东西 这会将所有空白分组为分隔符。 因此,如果我有字符串: 这将产生字符串并省略和之间的空白。 正如VonC指出的那样,应该转义反斜杠,因为Java首先会尝试将字符串转义为特殊字符,然后将其发送给解析。你想要的是字面量,这意味着你需要通过。可能会造成一些混乱。 在相当于。
我想用空格和特殊字符(如果有的话)来分割字符串。例如:用于表示移动交换中心(信号强度)。 目前我正在使用正则表达式来拆分字符串,但我无法同时实现空格和特殊字符的拆分。 更新代码: