我需要在分隔符-
和.
上拆分字符串。以下是我想要的输出。
AA.BB-CC-DD.zip
- >
AA
BB
CC
DD
zip
但我的以下代码不起作用。
private void getId(String pdfName){
String[]tokens = pdfName.split("-\\.");
}
答案 0 :(得分:283)
我认为您需要包含正则表达式 OR运算符:
String[]tokens = pdfName.split("-|\\.");
你所拥有的将匹配:
[DASH跟着DOT一起] -.
不
[DASH或DOT中的任何一个] -
或.
答案 1 :(得分:47)
试试这个正则表达式"[-.]+"
。 + after将连续的分隔符字符视为一个。如果您不想要,请删除加号。
答案 2 :(得分:24)
你可以使用正则表达式“\ W”。这匹配任何非单词字符。所需的行将是:
String[] tokens=pdfName.split("\\W");
答案 3 :(得分:12)
使用Guava你可以这样做:
Iterable<String> tokens = Splitter.on(CharMatcher.anyOf("-.")).split(pdfName);
答案 4 :(得分:10)
您提供的字符串split
是正则表达式的字符串形式,因此:
private void getId(String pdfName){
String[]tokens = pdfName.split("[\\-.]");
}
这意味着要分割[]
中的任何字符(我们必须使用反斜杠转义-
,因为它在[]
内是特殊的;当然我们必须逃避反斜杠,因为这是一个字符串)。 (相反,.
通常是特殊的,但在[]
内不是特殊的。)
答案 5 :(得分:3)
我使用Apache Commons:
导入org.apache.commons.lang3.StringUtils;
private void getId(String pdfName){
String[] tokens = StringUtils.split(pdfName, "-.");
}
它会在任何指定的分隔符上拆分,而不是使用完整字符串作为分隔符的StringUtils.splitByWholeSeparator(str, separator)
答案 6 :(得分:3)
对于两个char序列作为delimeters&#34; AND&#34;和&#34;或&#34;这应该是有效的。在使用时不要忘记修剪。
String text ="ISTANBUL AND NEW YORK AND PARIS OR TOKYO AND MOSCOW";
String[] cities = text.split("AND|OR");
结果:cities = {&#34; ISTANBUL&#34;,&#34;纽约&#34;,&#34;巴黎&#34;,&#34; TOKYO&#34;,&#34;莫斯科&#34;}
答案 7 :(得分:0)
您也可以在split()方法中将正则表达式指定为参数..请参见下面的示例....
private void getId(String pdfName){
String[]tokens = pdfName.split("-|\\.");
}
答案 8 :(得分:0)
使用这样的东西会更好:
s.split("[\\s\\-\\.\\'\\?\\,\\_\\@]+");
添加了一些其他字符作为样本。这是最安全的使用方式,因为.
和'
的处理方式。
答案 9 :(得分:0)
s.trim().split("[\\W]+")
应该有用。
答案 10 :(得分:0)
尝试以下代码:
var string = 'AA.BB-CC-DD.zip';
array = string.split(/[,.]/);
答案 11 :(得分:0)
for word in lst:
query = "CREATE (" + word + ":Word {word:'" + word + "})"
session.run(query)
答案 12 :(得分:0)
恕我直言,正则表达式有时可能会过大 因为它们可能很难调试
plt.subplots
如果我需要比以上更好的性能,请依靠Webpack或LLVM + 脚本进行优化。
希望对您有帮助!
答案 13 :(得分:0)
pdfName.split("[.-]+");
[.-]
-> .
或-
中的任何一个都可用作分隔符
+
符号表示,如果上述定界符连续出现,我们应将其视为一个。
答案 14 :(得分:-1)
如果你知道sting将始终采用相同的格式,首先根据.
拆分字符串,并将字符串存储在变量的第一个索引处。然后根据-
在第二个索引中拆分字符串并存储索引0,1和2.最后,根据.
拆分前一个数组的索引2,你应该已经获得了所有相关的字段。
请参阅以下代码段:
String[] tmp = pdfName.split(".");
String val1 = tmp[0];
tmp = tmp[1].split("-");
String val2 = tmp[0];
...