鉴于:
String input = "one two three four five six seven";
Run Code Online (Sandbox Code Playgroud)
是否有一个正则表达式,一次String.split()抓取(最多)两个单词,这样:
String[] pairs = input.split("some regex");
System.out.println(Arrays.toString(pairs));
Run Code Online (Sandbox Code Playgroud)
结果如下:
[one two, three four, five six, seven]
Run Code Online (Sandbox Code Playgroud)
这个问题是关于分裂正则表达式.它不是 "找到一种解决方法"或其他"使其以另一种方式工作"的解决方案.
我想用空格分割字符串,,并'使用单个ruby命令.
word.split 将被白色空间分开;
word.split(",")将分裂,;
word.split("\'")将分裂'.
如何一次完成这三个?
我正在使用以下格式split()标记分隔的字符串*:
name*lastName*ID*school*age
%
name*lastName*ID*school*age
%
name*lastName*ID*school*age
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码从名为"entrada.al"的文件中读取此内容:
static void leer() {
try {
String ruta="entrada.al";
File myFile = new File (ruta);
FileReader fileReader = new FileReader(myFile);
BufferedReader reader = new BufferedReader(fileReader);
String line = null;
while ((line=reader.readLine())!=null){
if (!(line.equals("%"))){
String [] separado = line.split("*"); //SPLIT CALL
names.add(separado[0]);
lastNames.add(separado[1]);
ids.add(separado[2]);
ages.add(separado[3]);
}
}
reader.close();
}
Run Code Online (Sandbox Code Playgroud)
我得到了这个例外:
线程"main"中的异常java.util.regex.PatternSyntaxException:在索引0*附近悬挂元字符'*'
我的猜测是*原始文本文件中缺少一个年龄后导致了这种情况.我该如何解决这个问题?
我需要将连续变量拆分/分成3个相等大小的组.
示例数据框
das <- data.frame(anim=1:15,
wt=c(181,179,180.5,201,201.5,245,246.4,
189.3,301,354,369,205,199,394,231.3))
Run Code Online (Sandbox Code Playgroud)
在被剪切后(根据值wt),我需要在新变量下面有3个类,wt2如下所示:
> das
anim wt wt2
1 1 181.0 1
2 2 179.0 1
3 3 180.5 1
4 4 201.0 2
5 5 201.5 2
6 6 245.0 2
7 7 246.4 3
8 8 189.3 1
9 9 301.0 3
10 10 354.0 3
11 11 369.0 3
12 12 205.0 2
13 13 199.0 1
14 14 394.0 3
15 15 231.3 2
Run Code Online (Sandbox Code Playgroud)
这将应用于大型数据集
现在我正在做一个split字符串,并假设用户的换行符是\r\n这样的:
string.split(/\r\n/)
Run Code Online (Sandbox Code Playgroud)
我想做的就是分裂\r\n或者只是分开\n.
那么正则表达式将如何拆分其中任何一个?
使用c ++ 11拆分字符串最简单的方法是什么?
我已经看过这篇文章所使用的方法,但我觉得使用新标准应该采用一种不那么冗长的方式.
编辑:我希望得到一个vector<string>结果,并能够划分单个字符.
我有一个逗号分隔文件,其中许多行类似于下面的一行.
Sachin,,M,"Maths,Science,English",Need to improve in these subjects.
Run Code Online (Sandbox Code Playgroud)
引号用于转义用于表示多个值的分隔符逗号.
现在如何使用String.split()if来分割逗号分隔符上的上述值?
我有DataFrame专栏Sales.
如何根据Sales价值将其拆分为2 ?
首先DataFrame是数据,'Sales' < s第二个是'Sales' >= s
我认为在Python 3中我将能够做到:
first, *rest = l
Run Code Online (Sandbox Code Playgroud)
这正是我想要的,但我正在使用2.6.现在我正在做:
first = l[0]
rest = l[1:]
Run Code Online (Sandbox Code Playgroud)
这很好,但我只是想知道是否有更优雅的东西.
我正在使用该boost::split方法拆分字符串,如下所示:
我首先确保包含正确的标题以访问boost::split:
#include <boost/algorithm/string.hpp>
Run Code Online (Sandbox Code Playgroud)
然后:
vector<string> strs;
boost::split(strs,line,boost::is_any_of("\t"));
Run Code Online (Sandbox Code Playgroud)
这条线就像
"test test2 test3"
Run Code Online (Sandbox Code Playgroud)
这是我使用结果字符串向量的方式:
void printstrs(vector<string> strs)
{
for(vector<string>::iterator it = strs.begin();it!=strs.end();++it)
{
cout << *it << "-------";
}
cout << endl;
}
Run Code Online (Sandbox Code Playgroud)
但是为什么在结果中strs我只得到,"test2"而且"test3"不应该"test","test2"并且"test3",\t字符串中有(tab).
2011年4月24日更新:在我更改了一行代码后,printstrs我可以看到第一个字符串.我变了
cout << *it << "-------";
Run Code Online (Sandbox Code Playgroud)
至
cout << *it << endl;
Run Code Online (Sandbox Code Playgroud)
它似乎"-------"以某种方式覆盖了第一根弦.