当前位置: 首页 > 知识库问答 >
问题:

在不带引号的逗号之间提取值

罗学真
2023-03-14

假设我有一个字符串,比如'John','Smith'。我希望我的正则表达式从该字符串中提取值JohnSmith,不带逗号和引号。我环顾了一下网站,找到了一个解决方案,去掉了逗号,但没有引号。

这是我尝试的正则表达式(?:^|)(?)?

有了它,我得到了'John''Smith'。当然,我可以像这样简单地迭代Matcher并手动删除引号,但是我想知道是否有更直接的解决方案使用regex而不必求助于replace eAll

Pattern pat = Pattern.compile("(?:^|(?<=,))[^,]*");
Matcher matcher = pat.matcher("'John', 'Smith'");
List<String> matches = new ArrayList<>();
while (matcher.find()) {
    matches.add(matcher.group().replaceAll("'", ""));
}

共有2个答案

常乐
2023-03-14

我尝试了这段代码,它给出了不带单引号的输出字符串

public class SubstringExample{
public static void main(String args[]){
String nameStr="'John','Smith'";
String newNameStr = nameStr.replaceAll("\'","");
System.out.println(newNameStr);
}}
扈俊健
2023-03-14

下面的正则表达式将起作用:“[^,”

下面是更新的代码。

public static void main(String[] args) {
    String regex = "[^,']+";
    Pattern pat = Pattern.compile(regex);
    Matcher matcher = pat.matcher("'John', 'Smith'");
    List<String> matches = new ArrayList<>();
    while (matcher.find()) {
        matches.add(matcher.group());
    }
    System.out.println(matches);
}

输出:

[John,  , Smith]
 类似资料:
  • 我有这样一个价值观: 什么正则表达式将返回包含在引号中的值(例如和)?

  • 下面是我的代码。我想用逗号分隔的列表追加ip:port字符串。 我想要这种格式的输出:

  • 我想做的是提取单引号或双引号之间的所有值。 假设我有以下值。 所需的输出为: 我应该如何编写正则表达式(使用一个正则表达式一次提取所有所需的值),以获得包含在第一个和最后一个引号中的整个文本? p、 我想使用方法

  • 问题内容: 在两个不同的表之间使用逗号或联接有什么区别? 例如以下两个代码: 问题答案: 执行它们时并没有真正的区别,但是在工作中存在可读性,一致性和减轻错误的问题: 想象一下,如果您有4张桌子,如果使用老式的INNER JOIN方法,那么最终结果将是: 使用显式的INNER JOINS它将是: 后者显示了您在桌子前面的确切位置。它具有更高的可读性,并且更容易出错,因为与在WHERE中添加另一个A

  • 我有一根绳子 我想用逗号分隔,但需要排除括号和引号内的逗号(单引号和双引号)。 这样地

  • 问题内容: 如何从中提取字符串并使用模式匹配或其他方法。例如,如果文本是` “您好(Java)” 然后如何获得。 谢谢。 问题答案: 试试这个: 要么