我试图用Java写一个正则表达式来查找单引号之间的内容。可以帮我吗?我尝试了以下操作,但在某些情况下不起作用:
Pattern p = Pattern.compile("'([^']*)'");
测试案例: “ Tumblr”是一个了不起的应用程序 预期输出: Tumblr
测试用例: Tumblr是一个了不起的“应用程序” 预期输出: 应用程序
测试用例: Tumblr是一个“惊人的”应用程序 预期输出: 惊人的
测试用例: Tumblr很棒而且令人惊讶 预期输出: 很棒,很棒
测试用例: Tumblr的用户感到失望 预期输出: NONE
测试案例: Tumblr的“收购”完成,但用户忠诚度令人怀疑 预期输出: 收购
我对此表示感谢。
谢谢。
这应该可以解决问题:
(?:^|\s)'([^']*?)'(?:$|\s)
范例:http://www.regex101.com/r/hG5eE1
在Java(ideone)中:
import java.util.*;
import java.lang.*;
import java.util.regex.*;
class Main {
static final String[] testcases = new String[] {
"'Tumblr' is an amazing app",
"Tumblr is an amazing 'app'",
"Tumblr is an 'amazing' app",
"Tumblr is 'awesome' and 'amazing' ",
"Tumblr's users' are disappointed ",
"Tumblr's 'acquisition' complete but users' loyalty doubtful"
};
public static void main (String[] args) throws java.lang.Exception {
Pattern p = Pattern.compile("(?:^|\\s)'([^']*?)'(?:$|\\s)", Pattern.MULTILINE);
for (String arg : testcases) {
System.out.print("Input: "+arg+" -> Matches: ");
Matcher m = p.matcher(arg);
if (m.find()) {
System.out.print(m.group());
while (m.find()) System.out.print(", "+m.group());
System.out.println();
} else {
System.out.println("NONE");
}
}
}
}
如何替换文本文件中两个引号之间的所有输入。第一个引号总是前面有一个选项卡,或者它是行中的第一个字符(csv文件)。我尝试了以下正则表达式 但是这个正则表达式只匹配两个引号之间的第一个输入,而不是全部。 例如,以下文本: 应成为 我读了下面的文章(javascript正则表达式替换括号之间的空格),非常相似,但正则表达式建议在我的情况下不可用。
我想做的是提取单引号或双引号之间的所有值。 假设我有以下值。 所需的输出为: 我应该如何编写正则表达式(使用一个正则表达式一次提取所有所需的值),以获得包含在第一个和最后一个引号中的整个文本? p、 我想使用方法
我正在创建一个单词替换脚本。我遇到了一个路障,忽略引号之间的字符串,并且在这里找不到一个不涉及正则表达式的体面解决方案。 我有一个工作片段,它循环遍历字符串中的每个字符,并计算出最近的报价是开始报价还是结束报价(无论是单引号还是双引号),并忽略转义报价。问题是,为了提供100%准确的体验,它必须在每次字符串更改时运行(由于它的工作方式,它可以在单个函数中更改60K次),并且由于字符串长度的可能性,
我正在尝试匹配这些字符串: 单引号中不能包含双引号 双引号中没有双引号 单引号内的单引号-单引号只能包含内部的文本 我想出了以下正则表达式: 但它不起作用。
问题内容: 我需要解析一个日志文件并获取时间和相关的函数调用字符串,它以如下方式存储在日志文件中:{“ time”:“ 2012-09-24T03:08:50”,“ message”:“ Call( )开始”} 在其他字符串字符之间将有多个记录的时间函数调用,因此我希望使用正则表达式浏览文件并获取所有这些 我想获取包括大括号在内的整个记录的信息 我尝试了以下 和 我不断收到非法的重复错误,请帮
问题内容: 我写了一个正则表达式,用double-qoutes分割字符串: 如何将其扩展为与单双qoutes一起使用? 我试过了: 但这是行不通的 问题答案: 有两种方法: