我有一个多行字符串,由一组不同的分隔符分隔:
(Text1)(DelimiterA)(Text2)(DelimiterC)(Text3)(DelimiterB)(Text4)
Run Code Online (Sandbox Code Playgroud)
我可以将这个字符串拆分成它的部分,String.split但是看起来我无法获得与分隔符正则表达式匹配的实际字符串.
换句话说,这就是我得到的:
Text1Text2Text3Text4这就是我要的
Text1DelimiterAText2DelimiterCText3DelimiterBText4是否有任何JDK方法使用分隔符正则表达式拆分字符串,但也保留分隔符?
是否有更好的方法来获取文件基名和扩展名
File f = ...
String name = f.getName();
int dot = name.lastIndexOf('.');
String base = (dot == -1) ? name : name.substring(0, dot);
String extension = (dot == -1) ? "" : name.substring(dot+1);
Run Code Online (Sandbox Code Playgroud) 类似于:如何使用某些分隔符拆分String但不在Java中删除该分隔符?
我需要拿"Hello World"并获得["Hello","","World"]
输入示例:
RC23
CC23QQ21HD32
BPOASDf91A5HH123
Run Code Online (Sandbox Code Playgroud)
输出示例:
[RC,23]
[CC,23,QQ,21,HD,32]
[BPOASDf,91,A,5,HH,123]
Run Code Online (Sandbox Code Playgroud)
字母和数字部分的长度不固定。
我知道如何将split()与正则表达式一起使用,//.' ' ' '([a-z])但是尽管我检查了split()Java API,但找不到任何可以帮助我解决此问题的东西。
有没有办法split()做到这一点?或者我需要使用另一种方法来拆分这些字符串。
任何帮助,将不胜感激。
我试图用连字符和字符分割字符串,但不确定如何使用正则表达式拆分.字符串是这样的:
-u tom -p 12345 -h google.com
连字符和字符在位置上可以互换,并且可以显示多少个.我希望他们回到阵列中.这是我到目前为止:
Scanner reader = new Scanner(System.in);
String entireLine = reader.nextLine();
String[] array = entireLine.split("–", -1);
Run Code Online (Sandbox Code Playgroud)
我想要的结果是:
-u tom
-p 12345
-h google.com
谢谢.
在这里,我尝试创建一个匹配一个特定字符串的正则表达式:
#This is the string that the regex is intended to match
theString = "..!-+!)|(!+-!.."
print(re.compile(theString).match(theString))
Run Code Online (Sandbox Code Playgroud)
这会产生错误而不是匹配字符串:
raise error, v # invalid expression
sre_constants.error: unbalanced parenthesis
Run Code Online (Sandbox Code Playgroud)
有没有办法生成一个只匹配一个特定字符串的正则表达式,比如这个?