例子我有一个字符串
"123<a>3213<b>3434343<c>,example <d><1><2><3>"
我希望通过符号获得内部文本 "<>"
如何获得列表 [a,b,c,d,1,2,3] ???
我想从数据框的列中提取特定信息,并将其添加到同一数据框中的新列.复杂性在于某些行根本没有我要提取的信息("UniProt:"之后的6个字符),而其他行有多次出现 - 我希望这些行相应地显示,因为此列包含标识符在我的数据框中.
这是一个例子; 我从我的数据框中复制了几行Fasta.headers:
第1行:
H05C05.1c; CE43771; WBGene00019157;状态:Partially_confirmed; UniProt的:H2L0A8; protein_id:CCD72193.1;> H05C05.1a; CE37385; WBGene00019157;状态:Partially_confirmed; UniProt的:Q9TXU2; protein_id:CCD72188.1
第2行:
C02B10.5; CE16802; WBGene00015330;状态:Partially_confirmed; UniProt的:O44447; protein_id:CCD61167.1
第3行:
ZK1127.4; CE07643; WBGene00022851;状态:确认; protein_id:CCD73716.1
第4行:
T27C4.4a; CE21211; WBGene00003025;轨迹:LIN-40;状态:成熟; UniProt的:O61907; protein_id:CCD74255.1;> T27C4.4b; CE21212; WBGene00003025;轨迹:LIN-40;状态:成熟; UniProt的:Q76NP4 ; protein_id:CCD74256.1;> T27C4.4d; CE33331;> F54F2.9; CE39158; WBGene00018836;状态:成熟; UniProt的:P34454; protein_id:CCD71243.1
我希望输出为:
H2L0A8;Q9TXU2
O44447
O61907;Q76NP4;P34454
Run Code Online (Sandbox Code Playgroud) 我有一个字符串
"Domlur, Old Hal Airport Road, Bangalore, Karnataka"
Run Code Online (Sandbox Code Playgroud)
在这个字符串中我想只存储"Domlur,Old Hal Airport Road"并修剪其余的字符串.
经过一些谷歌研究,我认为我会在这里得到一些帮助.提前致谢.
我有以下字符串:
get_url.pl?critic_name=A_O_Scott.
我有以下正则表达式返回之前的任何东西,=但我似乎无法在它之前删除它?
$string=~ s/\=.*$//;
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我主要是一个Python程序员,学习一些Java.我需要一个函数将包含"First Last"形式的名称的字符串转换为"Last,First"(我还需要这个能够处理单个名称:"Cher"=>"Cher"和First Middle Last:"John F. Kennedy"=>"Kennedy,John F.")我开始考虑像在Python中那样解决它:
def tolastfirst(astring):
parts = astring.split()
return parts[-1] + ", " + " ".join(parts[:-1])
Run Code Online (Sandbox Code Playgroud)
字符串切片和列表拆分和连接在Python中非常常见和简洁,这是我想到的第一件事.这转化为Java这样的东西:
public static String toLastFirst(String firstLast) {
List<String> parts = Arrays.asList(firstLast.split(" "));
if (parts.size() > 1) {
String last = parts.get(parts.size() - 1);
List<String> frontParts = parts.subList(0, parts.size() - 1);
String front = org.apache.commons.lang.StringUtils.join(frontParts.toArray(), " ");
return last + ", " + front;
} else {
return firstLast;
}
}
Run Code Online (Sandbox Code Playgroud)
所以这似乎是不必要的复杂,从代码中可能很明显我不明白使用数组与列表的原因和原因.从一个数组转换到一个List然后再回来看起来真的很傻,所以我尝试了这个:
public static String toLastFirst(String firstLast) {
String[] parts = …Run Code Online (Sandbox Code Playgroud) 我想提取ccadmin的/ccadmin/hrp/filelist?
我知道我可以使用最后一个子串
String uri = "/ccadmin/hrp/filelist";
String commandKey = uri.substring(uri.lastIndexOf("/") + 1, uri.length());
Run Code Online (Sandbox Code Playgroud)
但是如何提取第一个Substring ccadmin?
所以我有html文件.我需要从中提取所有链接和图像.基本上我需要:
<a href="this_is_what_I_need"> 和 <img src="this_is_also_needed">
我逐行阅读文件,可以得到它,但只有第一个:
List<string> links = new List<string>();
if (line.Contains(@"<a href=""") || line.Contains(@"<img src="""))
{
if (line.Contains(@"<a href=""")
{
links.Add(line.Split(new string[] { @"<a href""" }, StringSplitOptions.None)[1].Split('"')[0]);
}
else
{
links.Add(line.Split(new string[] { @"<a href=""" }, StringSplitOptions.None)[1].Split('"')[0]);
}
}
Run Code Online (Sandbox Code Playgroud)
但是一行可能包含多个链接和/或图像.那么如何获得所有?
我正在用Java编写一个编码问题并且我的解决方案有效,但我看到其他人在他们的博客上发布的另一个解决方案有点短,但我不明白为什么它有效.
问题是:
给定非空字符串和int n,返回一个新字符串,其中索引n处的char已被删除.n的值将是原始字符串中char的有效索引(即n将在
0..str.length()-1包括的范围内).
我的代码(适用于所有条件):
public String missingChar(String str, int n) {
return str.substring(0,n) + str.substring(n+1,str.length());
}
Run Code Online (Sandbox Code Playgroud)
其他有效的代码是:
public String missingChar(String str, int n) {
return str.substring(0, n) + str.substring(n + 1);
}
Run Code Online (Sandbox Code Playgroud)
区别在于第二行的末尾.
我的问题是为什么会str.substring(n+1)产生与之相同的结果str.substring(n+1,str.length())?
我有以下代码:
string date = dtxt.Substring(5, 2) + @"/" + dtxt.Substring(7, 2) + @"/" + dtxt.Substring(0, 4);
Run Code Online (Sandbox Code Playgroud)
我试图用它解析的文本是yyyyMMdd.所以从20150309我需要03/09/2015.我不使用dateTime格式,因为输入和输出都是字符串.
问题是我得到了ArgumentOutOfRangeException.string.Substring(X, Y)应该从X索引获取子串的Y长度,不应该吗?
我试图提取"first_name"并"last_name"从信息的长字符串看起来像这样:
{
"123123123": {
"id": "12321312****",
"email": "***************",
"first_name": "Marcus",
"gender": "male",
"last_name": "Bengtsson",
"link": "https://www.facebook.com/app_scoped_user_id/123123123/",
"locale": "en_EN",
"middle_name": "Peter",
"name": "Marcus Peter Bengtsson"
}
}
Run Code Online (Sandbox Code Playgroud)
我的方式做到这一点(这可能是可怕的错误和一个非常糟糕的解决方案)是我首先从提取的子串"first_name"来"link"使用此代码:
String subStr = str.substring(str.indexOf("first_name"), str.lastIndexOf("link"));
Run Code Online (Sandbox Code Playgroud)
然后我得到:
first_name":"Marcus","gender":"male","last_name":"Bengtsson","
然后,我做同样的事情,但是从":"以"gender"获得"first_name:
String firstNameOfUser = subStr.substring(subStr.indexOf(":")+2, subStr.lastIndexOf("gender")-3);
Run Code Online (Sandbox Code Playgroud)
然后同样的事情"last_name":
String lastNameOfUser = subStr.substring(subStr.indexOf(""last_name"")+12, subStr.lastIndexOf(",")-1);
Run Code Online (Sandbox Code Playgroud)
最后,我在两个字符串之间添加一个空格:
String nameOfUser = new StringBuilder().append(firstNameOfUser).append(" ").append(lastNameOfUser).toString();
Run Code Online (Sandbox Code Playgroud)
然后我得到:
Marcus Bengtsson
可能有一个更好的方法来做到这一点,但我无法找出如何解决.