我有这个字符串的两个变体
name='Anything can go here'
name="Anything can go here"
其中name =可以有这样的空格
name=(text)
name =(text)
name = (text)
我需要在引号之间提取文本,我不确定什么是最好的方法来解决这个问题,我应该只有机制来在引号上剪掉字符串吗?你有一个我不会有很多案例的例子吗?处理,或者我应该使用正则表达式。
答案 0 :(得分:0)
我不确定我是否完全理解这个问题,但我会尽力给予它:
如果您只想将变量name2
分配给引号内的字符串,那么您可以轻松地执行:
String name = 'Anything can go here';
String name2= name.replace("'","");
name2 = name2.replace("\"","");
答案 1 :(得分:0)
您希望获得Anything can go here
是否在单引号或双引号之间。通过使用以下模式,Regex
具有执行此操作的功能,无论“=”之前或之后的空格如何:
"[\"'](.+)[\"']"
故障:
[\"']
- 由双引号或单引号组成的字符类(.+)
- 任何字符中的一个或多个(可能匹配也可能不匹配存储在捕获组1中的行终止符[\"']
- 由双引号或单引号组成的字符类简而言之,我们试图捕捉单引号或双引号之间的任何内容。
示例:
public static void main(String[] args) {
List<String> data = new ArrayList(Arrays.asList(
"name='Anything can go here'",
"name = \"Really! Anything can go here\""
));
for (String d : data) {
Matcher matcher = Pattern.compile("[\"'](.+)[\"']").matcher(d);
if (matcher.find()) {
System.out.println(matcher.group(1));
}
}
}
结果:
Anything can go here
Really! Anything can go here