在Java中,从空格或制表符向前或向后修剪
我知道如何在Java中修剪东西,但是如何从空间或选项卡向左或向右修剪?我有一个程序可以搜索大约4个字符的前缀,比如说这个前缀是在Java中,从空格或制表符向前或向后修剪,java,trim,Java,Trim,我知道如何在Java中修剪东西,但是如何从空间或选项卡向左或向右修剪?我有一个程序可以搜索大约4个字符的前缀,比如说这个前缀是XYBC,然后它有X个字符,比如XYBC4975723434,但是我的代码所使用的行如下所示: Viuhaskfdksjfkds XYBC4975723434 fkdsjkfjaksjfklsdakldjsen 但是,我希望它将其裁剪为:XYBC4975723434 谢谢您可以使用正则表达式来实现这一点。例如,通过使用正则表达式XYBC\d+,可以匹配或查找前缀为XYBC
XYBC
,然后它有X个字符,比如XYBC4975723434
,但是我的代码所使用的行如下所示:
Viuhaskfdksjfkds XYBC4975723434 fkdsjkfjaksjfklsdakldjsen
但是,我希望它将其裁剪为:XYBC4975723434
谢谢您可以使用正则表达式来实现这一点。例如,通过使用正则表达式
XYBC\d+
,可以匹配或查找前缀为XYBC
的任何数字序列。在代码中,这将如下所示:
String input=“Viuhaskfdksjfkds XYBC4975723434 fkdsjkfjaksjfklsdakldjsen”;
Pattern=Pattern.compile(“XYBC\\d+”);
Matcher Matcher=pattern.Matcher(输入);
如果(!matcher.find())抛出新的RuntimeException(“找不到任何前缀为XYBC的数字!”);
System.out.println(matcher.group());//打印“XYBC4975723434”
还可以查看给定正则表达式的详细信息。您可以使用正则表达式来实现这一点。例如,通过使用正则表达式
XYBC\d+
,可以匹配或查找前缀为XYBC
的任何数字序列。在代码中,这将如下所示:
String input=“Viuhaskfdksjfkds XYBC4975723434 fkdsjkfjaksjfklsdakldjsen”;
Pattern=Pattern.compile(“XYBC\\d+”);
Matcher Matcher=pattern.Matcher(输入);
如果(!matcher.find())抛出新的RuntimeException(“找不到任何前缀为XYBC的数字!”);
System.out.println(matcher.group());//打印“XYBC4975723434”
还可以查看给定正则表达式的详细信息。这不是修剪,而是正则表达式查找,使用以下正则表达式:
\bXYBC.*?\b
这个表达使用了单词边界,这可能不是你想要的
对于空白,请使用:
(?<=^|\s)XYBC\S*
输出(字边界)
XYBC4975723434
XYBC4975723434
未找到:Viuhaskfdksjfkds xxybc495723434 fkdsjkfjaksjfklsdakldjsen
XYBC49
输出(空白)
XYBC4975723434
XYBC4975723434
未找到:Viuhaskfdksjfkds xxybc495723434 fkdsjkfjaksjfklsdakldjsen
XYBC49-75(723)4$34
这不是一个trim,而是一个正则表达式find,使用以下正则表达式:
\bXYBC.*?\b
这个表达使用了单词边界,这可能不是你想要的
对于空白,请使用:
(?<=^|\s)XYBC\S*
输出(字边界)
XYBC4975723434
XYBC4975723434
未找到:Viuhaskfdksjfkds xxybc495723434 fkdsjkfjaksjfklsdakldjsen
XYBC49
输出(空白)
XYBC4975723434
XYBC4975723434
未找到:Viuhaskfdksjfkds xxybc495723434 fkdsjkfjaksjfklsdakldjsen
XYBC49-75(723)4$34
我有一个搜索4个字符前缀的程序,假设这个前缀是XYBC,那么它有X个字符
如果希望程序获取具有特定起始字母的子字符串并获取特定数量的字母,则可以执行此操作(除了使用正则表达式外):
测试:
String str = "Viuhaskfdksjfkds XYBC4975723434 fkdsjkfjaksjfklsdakldjsen";
System.out.println(grabText(str, "XYBC", 14));
System.out.println(grabText(str, "XYBC", 5));
System.out.println(grabText(str, "XYBC", 100));
System.out.println(grabText(str, "XYBC", 9999));
XYBC4975723434
XYBC4
XYBC4975723434 fkdsjkfjaksjfklsdakldjsen
XYBC4975723434 fkdsjkfjaksjfklsdakldjsen
输出:
String str = "Viuhaskfdksjfkds XYBC4975723434 fkdsjkfjaksjfklsdakldjsen";
System.out.println(grabText(str, "XYBC", 14));
System.out.println(grabText(str, "XYBC", 5));
System.out.println(grabText(str, "XYBC", 100));
System.out.println(grabText(str, "XYBC", 9999));
XYBC4975723434
XYBC4
XYBC4975723434 fkdsjkfjaksjfklsdakldjsen
XYBC4975723434 fkdsjkfjaksjfklsdakldjsen
我有一个搜索4个字符前缀的程序,假设这个前缀是XYBC,那么它有X个字符
如果希望程序获取具有特定起始字母的子字符串并获取特定数量的字母,则可以执行此操作(除了使用正则表达式外):
测试:
String str = "Viuhaskfdksjfkds XYBC4975723434 fkdsjkfjaksjfklsdakldjsen";
System.out.println(grabText(str, "XYBC", 14));
System.out.println(grabText(str, "XYBC", 5));
System.out.println(grabText(str, "XYBC", 100));
System.out.println(grabText(str, "XYBC", 9999));
XYBC4975723434
XYBC4
XYBC4975723434 fkdsjkfjaksjfklsdakldjsen
XYBC4975723434 fkdsjkfjaksjfklsdakldjsen
输出:
String str = "Viuhaskfdksjfkds XYBC4975723434 fkdsjkfjaksjfklsdakldjsen";
System.out.println(grabText(str, "XYBC", 14));
System.out.println(grabText(str, "XYBC", 5));
System.out.println(grabText(str, "XYBC", 100));
System.out.println(grabText(str, "XYBC", 9999));
XYBC4975723434
XYBC4
XYBC4975723434 fkdsjkfjaksjfklsdakldjsen
XYBC4975723434 fkdsjkfjaksjfklsdakldjsen
听起来像是要将输入字符串
split()
放在空白处。听起来像是要将输入字符串split()
放在空白处。